diff --git a/attic/.helmignore b/attic/.helmignore deleted file mode 100644 index a03bb3bc..00000000 --- a/attic/.helmignore +++ /dev/null @@ -1,26 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ -*.nix -old/ -nix/ diff --git a/attic/Chart.yaml b/attic/Chart.yaml deleted file mode 100644 index 142f6713..00000000 --- a/attic/Chart.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: v2 -name: sys -description: A Helm chart for Kubernetes - -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. -type: application - -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 - -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: "1.16.0" -dependencies: # A list of the chart requirements (optional) - - name: sys-cilium-policies - condition: cilium.enabled diff --git a/attic/charts/cilium/.helmignore b/attic/charts/cilium/.helmignore deleted file mode 100644 index 0e8a0eb3..00000000 --- a/attic/charts/cilium/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/attic/charts/cilium/Chart.yaml b/attic/charts/cilium/Chart.yaml deleted file mode 100644 index 68b10e69..00000000 --- a/attic/charts/cilium/Chart.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: v2 -name: cilium -description: A Helm chart for Kubernetes - -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. -type: application - -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 - -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: "1.16.0" diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-applicationset-ingress.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-applicationset-ingress.yaml deleted file mode 100644 index 1678e7a3..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-applicationset-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-applicationset-ingress - namespace: argocd -spec: - description: Allow access from the ingress controller - endpointSelector: - matchLabels: - app.kubernetes.io/component: applicationset-controller - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-notifications.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-notifications.yaml deleted file mode 100644 index 045dbc56..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-notifications.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-argo-notifications - namespace: argocd -spec: - description: Allow access to the ArgoCD Notifications - egress: - - toFQDNs: - - matchName: slack.com - endpointSelector: - matchLabels: - app.kubernetes.io/component: notifications-controller diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access-applicationset.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access-applicationset.yaml deleted file mode 100644 index 0af071b5..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access-applicationset.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-argo-repo-access-applicationset - namespace: argocd -spec: - description: Allow access to the ArgoCD repo Applicationset - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app.kubernetes.io/component: applicationset-controller diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access.yaml deleted file mode 100644 index 6e2b7e04..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-argo-repo-access - namespace: argocd -spec: - description: Allow access to the ArgoCD repo server - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app.kubernetes.io/component: repo-server diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-chartmuseum-ingress.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-chartmuseum-ingress.yaml deleted file mode 100644 index 5f030377..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-chartmuseum-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-chartmuseum-ingress - namespace: argocd -spec: - description: Allow access to the chartmuseum ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: chartmuseum - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-image-updater-repo-access.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-image-updater-repo-access.yaml deleted file mode 100644 index 1534b3c8..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-image-updater-repo-access.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-image-updater-repo-access - namespace: argocd -spec: - description: Allow argoCD image updater to access github container registry - egress: - - toFQDNs: - - matchName: ghcr.io - endpointSelector: - matchLabels: - app.kubernetes.io/name: argocd-image-updater diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-ingress.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-ingress.yaml deleted file mode 100644 index 2096eaae..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-ingress - namespace: argocd -spec: - description: Allow access from the ingress controller - endpointSelector: - matchLabels: - app.kubernetes.io/component: server - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 40045bb8..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: argocd -spec: - description: Allow access to the Kube API server - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-microsoft-sso.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-microsoft-sso.yaml deleted file mode 100644 index e68b04d2..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-microsoft-sso.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-microsoft-sso - namespace: argocd -spec: - description: Allow argoCD dex server to authenticate to microsoft online azure oatuh - egress: - - toFQDNs: - - matchName: login.microsoftonline.com - - matchPattern: '*.microsoftonline.com' - - matchName: github.com - - matchName: api.github.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: argocd-dex-server diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-rollout.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-rollout.yaml deleted file mode 100644 index ebfed5bd..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-rollout.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics-rollout - namespace: argocd -spec: - description: Allow access to the Prometheus metrics - endpointSelector: - matchLabels: - app.kubernetes.io/instance: argo-rollouts - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "8090" - protocol: TCP diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-workflows.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-workflows.yaml deleted file mode 100644 index f8f81286..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-workflows.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics-workflows - namespace: argocd -spec: - description: Allow access to the Prometheus metrics - endpointSelector: - matchLabels: - app.kubernetes.io/instance: argo-workflows - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "9090" - protocol: TCP diff --git a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index a1b0f86f..00000000 --- a/attic/charts/cilium/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: argocd -spec: - description: Allow access to the Prometheus metrics - endpointSelector: - matchLabels: - app.kubernetes.io/instance: argocd - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "8082" - protocol: TCP - - port: "8080" - protocol: TCP - - port: "9001" - protocol: TCP - - port: "9121" - protocol: TCP - - port: "8084" - protocol: TCP - - port: "8083" - protocol: TCP - - port: "5558" - protocol: TCP diff --git a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-api-server-to-cert-manager.yaml b/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-api-server-to-cert-manager.yaml deleted file mode 100644 index 7ff9859e..00000000 --- a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-api-server-to-cert-manager.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server-to-cert-manager - namespace: cert-manager -spec: - description: Allow the API server to communicate with the cert-manager pods - endpointSelector: - matchLabels: - app.kubernetes.io/instance: cert-manager - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 49e026d4..00000000 --- a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: cert-manager -spec: - description: Allow the Kube API server to communicate with cert-manager - egress: - - toEntities: - - kube-apiserver - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index d64ede50..00000000 --- a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: cert-manager -spec: - description: Allow Prometheus metrics - endpointSelector: - matchLabels: - app.kubernetes.io/instance: cert-manager - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9402" - protocol: TCP diff --git a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-world-traffic.yaml b/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-world-traffic.yaml deleted file mode 100644 index a3d26127..00000000 --- a/attic/charts/cilium/templates/cert-manager/CiliumNetworkPolicy-allow-world-traffic.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-world-traffic - namespace: cert-manager -spec: - description: Allow the world to communicate with cert-manager - egress: - - toEntities: - - world - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/cilium-spire/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/cilium-spire/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index ca0bd2c4..00000000 --- a/attic/charts/cilium/templates/cilium-spire/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: cilium-spire -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/cilium-spire/CiliumNetworkPolicy-allow-remote-node-to-server.yaml b/attic/charts/cilium/templates/cilium-spire/CiliumNetworkPolicy-allow-remote-node-to-server.yaml deleted file mode 100644 index 013a84f9..00000000 --- a/attic/charts/cilium/templates/cilium-spire/CiliumNetworkPolicy-allow-remote-node-to-server.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-server - namespace: cilium-spire -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - remote-node - toPorts: - - ports: - - port: "8081" - protocol: TCP diff --git a/attic/charts/cilium/templates/cilium-test/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/cilium-test/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 28045ea2..00000000 --- a/attic/charts/cilium/templates/cilium-test/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: cilium-test -spec: - egress: - - toEndpoints: - - {} - - toEntities: - - cluster - - toEntities: - - remote-node - - toEntities: - - world - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - cluster - - fromEntities: - - world diff --git a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-acme-solvers.yaml b/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-acme-solvers.yaml deleted file mode 100644 index 214dade6..00000000 --- a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-acme-solvers.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-acme-solvers -spec: - description: Policy for ingress for Acme Solvers. - endpointSelector: - matchLabels: - acme.cert-manager.io/http01-solver: "true" - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-dns.yaml b/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-dns.yaml deleted file mode 100644 index 0a7f77b3..00000000 --- a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-dns.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-dns -spec: - description: 'description: Allow only dns traffic by default. Also acts as a deny-all policy' - egress: - - toEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: kube-system - k8s-app: kube-dns - toPorts: - - ports: - - port: "53" - protocol: UDP - - rules: - dns: - - matchPattern: '*' - endpointSelector: - matchExpressions: - - key: io.kubernetes.pod.namespace - operator: NotIn - values: - - kube-system diff --git a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-mariadb-operator.yaml b/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-mariadb-operator.yaml deleted file mode 100644 index a0a41bcc..00000000 --- a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-mariadb-operator.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-mariadb-operator -spec: - description: allow mariadb instances to be reached by operator - endpointSelector: - matchLabels: - app.kubernetes.io/name: mariadb - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/name: mariadb-operator - io.kubernetes.pod.namespace: mariadb-operator - toPorts: - - ports: - - port: "3306" - protocol: TCP diff --git a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-s3.yaml b/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-s3.yaml deleted file mode 100644 index 43fed561..00000000 --- a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-allow-s3.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-s3-traffic -spec: - description: Policy for egress for CNPG Backups. - egress: - - toFQDNs: - {{- range .Values.s3.hosts }} - - matchName: {{ . | quote }} - {{- end }} - {{- range .Values.s3.patterns }} - - matchPattern: {{ . | quote }} - {{- end }} - - toCIDR: - {{- range .Values.s3.cidr }} - - {{ . | quote }} - {{- end }} - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-cilium-health-checks.yaml b/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-cilium-health-checks.yaml deleted file mode 100644 index 9fc9bb26..00000000 --- a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-cilium-health-checks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: cilium-health-checks -spec: - description: Health checks - egress: - - toEntities: - - remote-node - endpointSelector: - matchLabels: - reserved:health: "" - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-deny-all.yaml b/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-deny-all.yaml deleted file mode 100644 index 7ba45d08..00000000 --- a/attic/charts/cilium/templates/clusterwide/CiliumClusterwideNetworkPolicy-deny-all.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: deny-all -spec: - description: Deny all - egress: [] - endpointSelector: {} - ingress: [] diff --git a/attic/charts/cilium/templates/cnpg/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/cnpg/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index d32ac553..00000000 --- a/attic/charts/cilium/templates/cnpg/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: cnpg -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: postgres-operator diff --git a/attic/charts/cilium/templates/cnpg/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/cilium/templates/cnpg/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index 6c04cc22..00000000 --- a/attic/charts/cilium/templates/cnpg/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: cnpg -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/cilium/templates/downscaler/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/downscaler/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 7c7345ec..00000000 --- a/attic/charts/cilium/templates/downscaler/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: kube-downscaler -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - application: downscaler-py-kube-downscaler diff --git a/attic/charts/cilium/templates/downscaler/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/cilium/templates/downscaler/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index e99b9eec..00000000 --- a/attic/charts/cilium/templates/downscaler/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: kube-downscaler -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index 4ffbbd8c..00000000 --- a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: ingress-nginx -spec: - egress: - - toEntities: - - kube-apiserver - - host - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx diff --git a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-hubble-traffic.yaml b/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-hubble-traffic.yaml deleted file mode 100644 index fa9ee953..00000000 --- a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-hubble-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-traffic - namespace: ingress-nginx -spec: - egress: - - toFQDNs: - - matchPattern: hubble.*.*.* - - matchPattern: hubble.*.*.*.* - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx diff --git a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 98bbc402..00000000 --- a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: ingress-nginx -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: ingress-nginx - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9913" - protocol: TCP diff --git a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-s3-traffic.yaml b/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-s3-traffic.yaml deleted file mode 100644 index b3bcc3d3..00000000 --- a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-s3-traffic.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-s3-traffic - namespace: ingress-nginx -spec: - egress: - - toCIDR: - - 10.139.2.10/32 - - toCIDR: - - 10.139.2.11/32 - - toCIDR: - - 10.139.2.20/32 - - toCIDR: - - 10.139.2.21/32 - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx diff --git a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-world-to-ingress-nginx.yaml b/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-world-to-ingress-nginx.yaml deleted file mode 100644 index 4ecbe4fa..00000000 --- a/attic/charts/cilium/templates/ingress-nginx/CiliumNetworkPolicy-allow-world-to-ingress-nginx.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-world-to-ingress-nginx - namespace: ingress-nginx -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx - ingress: - - fromEntities: - - world - - toPorts: - - ports: - - port: "80" - protocol: TCP - - port: "443" - protocol: TCP diff --git a/attic/charts/cilium/templates/jaeger/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/jaeger/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 29cd1826..00000000 --- a/attic/charts/cilium/templates/jaeger/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: jaeger -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/jaeger/CiliumNetworkPolicy-allow-remote-node-to-jaeger.yaml b/attic/charts/cilium/templates/jaeger/CiliumNetworkPolicy-allow-remote-node-to-jaeger.yaml deleted file mode 100644 index 3d1bddcd..00000000 --- a/attic/charts/cilium/templates/jaeger/CiliumNetworkPolicy-allow-remote-node-to-jaeger.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-jaeger - namespace: jaeger -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: jaeger-operator - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/kafka/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/kafka/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 1e35e6ad..00000000 --- a/attic/charts/cilium/templates/kafka/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: kafka -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: kafka-operator diff --git a/attic/charts/cilium/templates/kafka/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/cilium/templates/kafka/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index cbf9ee6b..00000000 --- a/attic/charts/cilium/templates/kafka/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: kafka -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-controller-metrics.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-controller-metrics.yaml deleted file mode 100644 index 31b7dacc..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-controller-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-controller-metrics - namespace: kube-system -spec: - description: Allow Controller Metrics - endpointSelector: - matchLabels: - k8s-app: kube-controller-manager - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "10257" - protocol: TCP diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-csi-webhook.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-csi-webhook.yaml deleted file mode 100644 index 9e8e47fe..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-csi-webhook.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-csi-webhook - namespace: kube-system -spec: - endpointSelector: - matchLabels: - app: csi-snapshot-webhook - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns-metrics.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns-metrics.yaml deleted file mode 100644 index b4c33ac7..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns-metrics - namespace: kube-system -spec: - description: Allow DNS metrics - endpointSelector: - matchLabels: - k8s-app: kube-dns - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9153" - protocol: TCP diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns-world.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns-world.yaml deleted file mode 100644 index b69f15f6..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns-world.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns-world - namespace: kube-system -spec: - description: Allow DNS World - egress: - - toCIDR: - - 8.8.8.8/32 - - 172.31.254.11/32 - - 1.1.1.1/32 - toPorts: - - ports: - - port: "53" - protocol: UDP - rules: - dns: - - matchPattern: '*' - - toEntities: - - world - toPorts: - - ports: - - port: "53" - protocol: UDP - rules: - dns: - - matchPattern: '*' - endpointSelector: - matchLabels: - k8s-app: kube-dns diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns.yaml deleted file mode 100644 index 7d19e1de..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-dns.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns - namespace: kube-system -spec: - description: Allow DNS - endpointSelector: - matchLabels: - k8s-app: kube-dns - ingress: - - fromEndpoints: - - matchExpressions: - - key: io.kubernetes.pod.namespace - operator: Exists - toPorts: - - ports: - - port: "53" - protocol: UDP diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index 08710d89..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: kube-system -spec: - description: Allow Host Traffic - egress: - - toEntities: - - remote-node - - host - - kube-apiserver - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-ingress.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-ingress.yaml deleted file mode 100644 index ec1c6cf8..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-ingress - namespace: kube-system -spec: - description: Allow Hubble ingress - endpointSelector: - matchLabels: - k8s-app: hubble-ui - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-oauth2-ingress.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-oauth2-ingress.yaml deleted file mode 100644 index 7e31779e..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-oauth2-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-oauth2-ingress - namespace: kube-system -spec: - description: Allow Hubble OAuth2 ingress - endpointSelector: - matchLabels: - k8s-app: oauth2-proxy - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-relay-metrics.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-relay-metrics.yaml deleted file mode 100644 index 676dddde..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-hubble-relay-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-relay-metrics - namespace: kube-system -spec: - description: Allow Hubble Relay Metrics - endpointSelector: - matchLabels: - k8s-app: hubble-relay - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9966" - protocol: TCP diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-microsoft-sso.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-microsoft-sso.yaml deleted file mode 100644 index 71769867..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-microsoft-sso.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-microsoft-sso - namespace: kube-system -spec: - description: Allow Microsoft SSO - egress: - - toFQDNs: - - matchName: login.microsoftonline.com - - matchPattern: '*.microsoftonline.com' - - matchName: graph.microsoft.com - endpointSelector: - matchLabels: - k8s-app: oauth2-proxy diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-namespace-traffic.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-namespace-traffic.yaml deleted file mode 100644 index 9b20afc2..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-namespace-traffic.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-namespace-traffic - namespace: kube-system -spec: - description: Allow Namespace Traffic - egress: - - toEndpoints: - - {} - - toEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: kube-system - k8s-app: kube-dns - toPorts: - - ports: - - port: "53" - protocol: UDP - rules: - dns: - - matchPattern: '*' - endpointSelector: - matchLabels: {} - ingress: - - fromEndpoints: - - {} diff --git a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-proxy-metrics.yaml b/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-proxy-metrics.yaml deleted file mode 100644 index 0d99e202..00000000 --- a/attic/charts/cilium/templates/kube-system/CiliumNetworkPolicy-allow-proxy-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-proxy-metrics - namespace: kube-system -spec: - description: Allow Proxy metrics - endpointSelector: - matchLabels: - k8s-app: kube-proxy - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "10249" - protocol: TCP diff --git a/attic/charts/cilium/templates/kubelet-serving/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/kubelet-serving/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 59732e3a..00000000 --- a/attic/charts/cilium/templates/kubelet-serving/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: kubelet-serving-cert-approver -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index d52ee5c9..00000000 --- a/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: kyverno -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index f547d4a5..00000000 --- a/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: kyverno -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: kyverno - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "8000" - protocol: TCP diff --git a/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-remote-node-to-kyverno.yaml b/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-remote-node-to-kyverno.yaml deleted file mode 100644 index 5087fa86..00000000 --- a/attic/charts/cilium/templates/kyverno/CiliumNetworkPolicy-allow-remote-node-to-kyverno.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-kyverno - namespace: kyverno -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: kyverno - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-loki-backend-to-api-server.yaml b/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-loki-backend-to-api-server.yaml deleted file mode 100644 index 7e43aeb7..00000000 --- a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-loki-backend-to-api-server.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-loki-backend-to-api-server - namespace: loki -spec: - description: Promtail needs to reach kube-apiserver - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki diff --git a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index e3161e8b..00000000 --- a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: loki -spec: - description: Allow Prometheus read and write - endpointSelector: - matchLabels: - app.kubernetes.io/instance: loki - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "3100" - protocol: TCP - - port: "3500" - protocol: TCP diff --git a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-promtail-to-api-server.yaml b/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-promtail-to-api-server.yaml deleted file mode 100644 index 5d7cd58a..00000000 --- a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-promtail-to-api-server.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-promtail-to-api-server - namespace: loki -spec: - description: Promtail needs to reach kube-apiserver - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: promtail diff --git a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-stats-grafana.yaml b/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-stats-grafana.yaml deleted file mode 100644 index 47a8be11..00000000 --- a/attic/charts/cilium/templates/loki/CiliumNetworkPolicy-allow-stats-grafana.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-stats-grafana - namespace: loki -spec: - description: Allow stats - egress: - - toFQDNs: - - matchName: stats.grafana.org - endpointSelector: - matchLabels: - app.kubernetes.io/instance: loki diff --git a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index f90d4d76..00000000 --- a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: mariadb-operator -spec: - egress: - - toEntities: - - kube-apiserver - endpointSelector: - matchLabels: - app.kubernetes.io/instance: mariadb-operator diff --git a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-host-to-mariadb.yaml b/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-host-to-mariadb.yaml deleted file mode 100644 index 5da9d113..00000000 --- a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-host-to-mariadb.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-to-mariadb - namespace: mariadb-operator -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: mariadb-operator - ingress: - - fromEntities: - - host diff --git a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 726e1b72..00000000 --- a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: mariadb-operator -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: mariadb-operator - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "8080" - protocol: TCP diff --git a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index 43e812ad..00000000 --- a/attic/charts/cilium/templates/mariadb-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: mariadb-operator -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - remote-node - toPorts: - - ports: - - port: "443" - protocol: TCP - - port: "9443" - protocol: TCP diff --git a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index 7d296c8e..00000000 --- a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: mayastor -spec: - description: Allow Host Traffic - egress: - - toEntities: - - remote-node - - host - - kube-apiserver - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-agent-core.yaml b/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-agent-core.yaml deleted file mode 100644 index 00e783d1..00000000 --- a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-agent-core.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-agent-core - namespace: mayastor -spec: - description: Allow Remote to Agent Core - endpointSelector: - matchLabels: - app: agent-core - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-etcd.yaml b/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-etcd.yaml deleted file mode 100644 index 10464d0e..00000000 --- a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-etcd.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-etcd - namespace: mayastor -spec: - description: Allow Remote to Etcd - endpointSelector: - matchLabels: - app.kubernetes.io/name: etcd - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-maya.yaml b/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-maya.yaml deleted file mode 100644 index 1de55fac..00000000 --- a/attic/charts/cilium/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-maya.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-maya - namespace: mayastor -spec: - description: Allow Remote to Mayastor - endpointSelector: - matchLabels: - app: api-rest - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 6c53acf9..00000000 --- a/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-kube-api -spec: - description: Allow access to the Kube API server - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app: minio diff --git a/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-minio-operator.yaml b/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-minio-operator.yaml deleted file mode 100644 index f5ad26b5..00000000 --- a/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-minio-operator.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-minio-operator -spec: - description: Allow access to the Kube API server - endpointSelector: - matchLabels: - app: minio - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: minio-operator - toPorts: - - ports: - - port: "9000" - protocol: TCP diff --git a/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-nodeport-ingress.yaml b/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-nodeport-ingress.yaml deleted file mode 100644 index 83985384..00000000 --- a/attic/charts/cilium/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-nodeport-ingress.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-nodeport-ingress -spec: - description: Allow access to the Kube API server - endpointSelector: - matchLabels: - app: minio - ingress: - - fromEntities: - - world - toPorts: - - ports: - - port: "9000" - protocol: TCP diff --git a/attic/charts/cilium/templates/minio-operator/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/minio-operator/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 83a6d612..00000000 --- a/attic/charts/cilium/templates/minio-operator/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: minio-operator -spec: - description: Allow access to the Kube API server - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/odigos-system/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/odigos-system/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index cb20793f..00000000 --- a/attic/charts/cilium/templates/odigos-system/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: odigos-system -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/odigos-system/CiliumNetworkPolicy-allow-port-4317.yaml b/attic/charts/cilium/templates/odigos-system/CiliumNetworkPolicy-allow-port-4317.yaml deleted file mode 100644 index f1b59b9e..00000000 --- a/attic/charts/cilium/templates/odigos-system/CiliumNetworkPolicy-allow-port-4317.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-port-4317 - namespace: odigos-system -spec: - egress: - - toPorts: - - ports: - - port: "4317" - protocol: TCP - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/one-password-operator/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/one-password-operator/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 23c8a706..00000000 --- a/attic/charts/cilium/templates/one-password-operator/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: one-password -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: one-password-operator diff --git a/attic/charts/cilium/templates/one-password-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/cilium/templates/one-password-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index 9a4a6c4b..00000000 --- a/attic/charts/cilium/templates/one-password-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: one-password -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/cilium/templates/opencost/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/opencost/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 99971950..00000000 --- a/attic/charts/cilium/templates/opencost/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: opencost -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: opencost diff --git a/attic/charts/cilium/templates/otel/CiliumNetworkPolicy-allow-otel-collector-loadbalancer-ingress.yaml b/attic/charts/cilium/templates/otel/CiliumNetworkPolicy-allow-otel-collector-loadbalancer-ingress.yaml deleted file mode 100644 index 80f83639..00000000 --- a/attic/charts/cilium/templates/otel/CiliumNetworkPolicy-allow-otel-collector-loadbalancer-ingress.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-otel-collector-loadbalancer-ingress - namespace: otel -spec: - description: Allow ingress from world - endpointSelector: - matchLabels: - app.kubernetes.io/name: opentelemetry-collector - ingress: - - fromEntities: - - world diff --git a/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-mail-egress.yaml b/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-mail-egress.yaml deleted file mode 100644 index 0691f418..00000000 --- a/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-mail-egress.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-mail-egress - namespace: postfix -spec: - description: Allow mailserver to send mails to world - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app: smtp-relay diff --git a/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-mail-ingress.yaml b/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-mail-ingress.yaml deleted file mode 100644 index a8a2d699..00000000 --- a/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-mail-ingress.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-mail-ingress - namespace: postfix -spec: - description: Allow all services in cluster to send mail - endpointSelector: - matchLabels: - app: smtp-relay - ingress: - - fromEndpoints: - - matchExpressions: - - key: io.kubernetes.pod.namespace - operator: Exists - toPorts: - - ports: - - port: "25" - protocol: TCP - - port: "587" - protocol: TCP diff --git a/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 0bac3318..00000000 --- a/attic/charts/cilium/templates/postfix/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: postfix -spec: - description: 'Allow prometheus metrics ' - endpointSelector: - matchLabels: - app: smtp-relay - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "9154" - protocol: TCP diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-alerting.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-alerting.yaml deleted file mode 100644 index e092cb26..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-alerting.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-alerting - namespace: prometheus -spec: - description: Allow alerting - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app.kubernetes.io/instance: prom-alertmanager diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-alertmanager-ingress.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-alertmanager-ingress.yaml deleted file mode 100644 index b6f96e64..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-alertmanager-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-alertmanager-ingress - namespace: prometheus -spec: - description: Allow Nginx ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: alertmanager - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-dns-metrics.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-dns-metrics.yaml deleted file mode 100644 index 0ee91e6e..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-dns-metrics.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns-metrics - namespace: prometheus -spec: - description: Allow DNS metrics - egress: - - toPorts: - - ports: - - port: "9153" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-etcd-metrics.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-etcd-metrics.yaml deleted file mode 100644 index 90ac789e..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-etcd-metrics.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-etcd-metrics - namespace: prometheus -spec: - description: Allow ETCD metrics - egress: - - toPorts: - - ports: - - port: "2379" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-ingress.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-ingress.yaml deleted file mode 100644 index fca3baf2..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-ingress - namespace: prometheus -spec: - description: Allow Grafana ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-oidc-login.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-oidc-login.yaml deleted file mode 100644 index ed2084fe..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-oidc-login.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-oidc-login - namespace: prometheus -spec: - description: Allow Grafana OIDC login - egress: - - toFQDNs: - - matchName: login.microsoftonline.com - - matchPattern: '*.microsoftonline.com' - - matchName: api.github.com - - matchName: github.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-plugins.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-plugins.yaml deleted file mode 100644 index 60721c6a..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-plugins.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-plugins - namespace: prometheus -spec: - description: Allow Grafana Plugins - egress: - - toFQDNs: - - matchName: grafana.com - - matchName: storage.googleapis.com - - matchName: raw.githubusercontent.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-secure-gravatar.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-secure-gravatar.yaml deleted file mode 100644 index 453c2330..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-grafana-secure-gravatar.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-secure-gravatar - namespace: prometheus -spec: - description: Allow Grafana Secure Gravatar - egress: - - toFQDNs: - - matchName: secure.grafana.com - - matchName: secure.gravatar.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index bb3a591a..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: prometheus -spec: - description: Allow Host Traffic - egress: - - toEntities: - - remote-node - - host - - kube-apiserver - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-nginx-ingress.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-nginx-ingress.yaml deleted file mode 100644 index ac650e55..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-nginx-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-nginx-ingress - namespace: prometheus -spec: - description: Allow Nginx ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-opencost-scrape.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-opencost-scrape.yaml deleted file mode 100644 index 4b7bd679..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-opencost-scrape.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-opencost-scrape - namespace: prometheus -spec: - description: Allow OpenCost scrape - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/name: opencost - io.kubernetes.pod.namespace: opencost - - toPorts: - - ports: - - port: "9090" - protocol: TCP diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-metrics-server.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-metrics-server.yaml deleted file mode 100644 index 0603da13..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-metrics-server.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-metrics-server - namespace: prometheus -spec: - description: Allow Remote Metrics Server - endpointSelector: - matchLabels: - app.kubernetes.io/instance: metrics-server - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-webhook.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-webhook.yaml deleted file mode 100644 index eeabfcbd..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-webhook.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-webhook - namespace: prometheus -spec: - description: Allow Remote Web Hook - endpointSelector: - matchLabels: - app: kube-prometheus-stack-operator - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-robusta-ingress.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-robusta-ingress.yaml deleted file mode 100644 index c1856c3f..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-robusta-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-robusta-ingress - namespace: prometheus -spec: - description: Allow Robusta ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: prom-prometheus - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: robusta diff --git a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-stats-grafana.yaml b/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-stats-grafana.yaml deleted file mode 100644 index 5d1ed102..00000000 --- a/attic/charts/cilium/templates/prometheus/CiliumNetworkPolicy-allow-stats-grafana.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-stats-grafana - namespace: prometheus -spec: - description: Allow stats - egress: - - toFQDNs: - - matchName: stats.grafana.org - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-inter-node-traffic.yaml b/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-inter-node-traffic.yaml deleted file mode 100644 index d06ad626..00000000 --- a/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-inter-node-traffic.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-inter-node-traffic - namespace: rabbitmq -spec: - description: Allow communication between nodes int the RabbitMQ cluster - egress: - - toEndpoints: - - matchLabels: - app.kubernetes.io/component: rabbitmq - toPorts: - - ports: - - port: "4369" - - endPort: 6500 - port: "6000" - - port: "25672" - - port: "35672" - - port: "35673" - - port: "35674" - - port: "35675" - - port: "35676" - - port: "35677" - - port: "35678" - - port: "35679" - - port: "35680" - - port: "35681" - - port: "35682" - endpointSelector: - matchLabels: - app.kubernetes.io/component: rabbitmq - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/component: rabbitmq - toPorts: - - ports: - - port: "4369" - - endPort: 6500 - port: "6000" - - port: "25672" - - port: "35672" - - port: "35673" - - port: "35674" - - port: "35675" - - port: "35676" - - port: "35677" - - port: "35678" - - port: "35679" - - port: "35680" - - port: "35681" - - port: "35682" diff --git a/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-operator-traffic.yaml b/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-operator-traffic.yaml deleted file mode 100644 index b7deeb34..00000000 --- a/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-operator-traffic.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-operator-traffic - namespace: rabbitmq -spec: - description: Allow access to the RabbitMQ operator - endpointSelector: - matchLabels: - app.kubernetes.io/component: rabbitmq - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/component: rabbitmq-operator - toPorts: - - ports: - - port: "15672" - - port: "15671" diff --git a/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-rabbitmq-traffic.yaml b/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-rabbitmq-traffic.yaml deleted file mode 100644 index f57cd209..00000000 --- a/attic/charts/cilium/templates/rabbitmq/CiliumNetworkPolicy-allow-rabbitmq-traffic.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-rabbitmq-traffic - namespace: rabbitmq -spec: - description: Allow access to the RabbitMQ cluster - endpointSelector: - matchLabels: - app.kubernetes.io/component: rabbitmq - ingress: - - toPorts: - - ports: - - port: "5672" - - port: "5671" - - port: "5552" - - port: "5551" - - port: "15672" - - port: "15671" - - port: "61613" - - port: "61614" - - port: "1883" - - port: "8883" - - port: "15674" - - port: "15675" - - port: "15692" - - port: "15691" diff --git a/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-ingress.yaml b/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-ingress.yaml deleted file mode 100644 index 5e8415c3..00000000 --- a/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-ingress.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-ingress - namespace: robusta -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/component: server - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index f91eed07..00000000 --- a/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: robusta -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-slack.yaml b/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-slack.yaml deleted file mode 100644 index c38a398a..00000000 --- a/attic/charts/cilium/templates/robusta/CiliumNetworkPolicy-allow-slack.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-slack - namespace: robusta -spec: - egress: - - toFQDNs: - - matchPattern: slack.com - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/rook-ceph/CiliumNetworkPolicy-allow-oceanbox-subnet.yaml b/attic/charts/cilium/templates/rook-ceph/CiliumNetworkPolicy-allow-oceanbox-subnet.yaml deleted file mode 100644 index 960eac40..00000000 --- a/attic/charts/cilium/templates/rook-ceph/CiliumNetworkPolicy-allow-oceanbox-subnet.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-oceanbox-subnet - namespace: rook-ceph -spec: - description: Allow oceanbox traffic - egress: - - toCIDR: - - 10.255.241.0/24 - - toCIDR: - - 10.255.244.0/24 - endpointSelector: - matchLabels: {} - ingress: - - fromCIDR: - - 10.255.241.0/24 - - fromCIDR: - - 10.255.244.0/24 diff --git a/attic/charts/cilium/templates/s3-sync/CiliumNetworkPolicy-allow-s3-internal.yaml b/attic/charts/cilium/templates/s3-sync/CiliumNetworkPolicy-allow-s3-internal.yaml deleted file mode 100644 index cd00612d..00000000 --- a/attic/charts/cilium/templates/s3-sync/CiliumNetworkPolicy-allow-s3-internal.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-s3-internal - namespace: s3-sync -spec: - description: Allow s3 traffic internal - egress: - - toCIDR: - - 10.139.2.20/32 - - toCIDR: - - 10.139.2.21/32 - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/s3-sync/CiliumNetworkPolicy-allow-s3-sync.yaml b/attic/charts/cilium/templates/s3-sync/CiliumNetworkPolicy-allow-s3-sync.yaml deleted file mode 100644 index 58b8e709..00000000 --- a/attic/charts/cilium/templates/s3-sync/CiliumNetworkPolicy-allow-s3-sync.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-s3-sync - namespace: s3-sync -spec: - description: Allow sync to safespring - egress: - - toFQDNs: - - matchName: s3.osl2.safedc.net - endpointSelector: - matchLabels: {} diff --git a/attic/charts/cilium/templates/sealed-secrets/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/cilium/templates/sealed-secrets/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index d56b8d90..00000000 --- a/attic/charts/cilium/templates/sealed-secrets/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: sealed-secrets -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: sealed-secrets diff --git a/attic/charts/cilium/templates/tempo/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/tempo/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index aa3ddd8c..00000000 --- a/attic/charts/cilium/templates/tempo/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: tempo -spec: - egress: - - toPorts: - - ports: - - port: "7946" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: tempo diff --git a/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index cb01381b..00000000 --- a/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: velero -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: velero diff --git a/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-job-api-server.yaml b/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-job-api-server.yaml deleted file mode 100644 index 21c8e2ff..00000000 --- a/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-job-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-job-api-server - namespace: velero -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - batch.kubernetes.io/job-name: velero-upgrade-crds diff --git a/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 1631d4bf..00000000 --- a/attic/charts/cilium/templates/velero/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: velero -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: velero - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "8085" - protocol: TCP diff --git a/attic/charts/cilium/templates/x509-exporter/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/cilium/templates/x509-exporter/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 7742a0fe..00000000 --- a/attic/charts/cilium/templates/x509-exporter/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: x509-exporter -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: x509-exporter diff --git a/attic/charts/cilium/templates/x509-exporter/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/cilium/templates/x509-exporter/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index cc040dd9..00000000 --- a/attic/charts/cilium/templates/x509-exporter/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: x509-exporter -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: x509-exporter - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9793" - protocol: TCP diff --git a/attic/charts/cilium/values.yaml b/attic/charts/cilium/values.yaml deleted file mode 100644 index 3964005c..00000000 --- a/attic/charts/cilium/values.yaml +++ /dev/null @@ -1,5 +0,0 @@ -s3: - hosts: - patterns: - cidr: - - 10.255.241.30/32 diff --git a/attic/charts/sys-cilium-policies/.helmignore b/attic/charts/sys-cilium-policies/.helmignore deleted file mode 100644 index 0e8a0eb3..00000000 --- a/attic/charts/sys-cilium-policies/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/attic/charts/sys-cilium-policies/Chart.yaml b/attic/charts/sys-cilium-policies/Chart.yaml deleted file mode 100644 index efa9ccd5..00000000 --- a/attic/charts/sys-cilium-policies/Chart.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: v2 -name: sys-cilium-policies -description: A Helm chart for Kubernetes - -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. -type: application - -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 - -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: "1.16.0" diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-applicationset-ingress.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-applicationset-ingress.yaml deleted file mode 100644 index 1678e7a3..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-applicationset-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-applicationset-ingress - namespace: argocd -spec: - description: Allow access from the ingress controller - endpointSelector: - matchLabels: - app.kubernetes.io/component: applicationset-controller - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-notifications.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-notifications.yaml deleted file mode 100644 index 045dbc56..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-notifications.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-argo-notifications - namespace: argocd -spec: - description: Allow access to the ArgoCD Notifications - egress: - - toFQDNs: - - matchName: slack.com - endpointSelector: - matchLabels: - app.kubernetes.io/component: notifications-controller diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access-applicationset.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access-applicationset.yaml deleted file mode 100644 index 0af071b5..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access-applicationset.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-argo-repo-access-applicationset - namespace: argocd -spec: - description: Allow access to the ArgoCD repo Applicationset - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app.kubernetes.io/component: applicationset-controller diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access.yaml deleted file mode 100644 index 6e2b7e04..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-argo-repo-access.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-argo-repo-access - namespace: argocd -spec: - description: Allow access to the ArgoCD repo server - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app.kubernetes.io/component: repo-server diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-chartmuseum-ingress.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-chartmuseum-ingress.yaml deleted file mode 100644 index 5f030377..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-chartmuseum-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-chartmuseum-ingress - namespace: argocd -spec: - description: Allow access to the chartmuseum ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: chartmuseum - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-image-updater-repo-access.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-image-updater-repo-access.yaml deleted file mode 100644 index 1534b3c8..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-image-updater-repo-access.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-image-updater-repo-access - namespace: argocd -spec: - description: Allow argoCD image updater to access github container registry - egress: - - toFQDNs: - - matchName: ghcr.io - endpointSelector: - matchLabels: - app.kubernetes.io/name: argocd-image-updater diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-ingress.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-ingress.yaml deleted file mode 100644 index 2096eaae..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-ingress - namespace: argocd -spec: - description: Allow access from the ingress controller - endpointSelector: - matchLabels: - app.kubernetes.io/component: server - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 40045bb8..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: argocd -spec: - description: Allow access to the Kube API server - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-microsoft-sso.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-microsoft-sso.yaml deleted file mode 100644 index e68b04d2..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-microsoft-sso.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-microsoft-sso - namespace: argocd -spec: - description: Allow argoCD dex server to authenticate to microsoft online azure oatuh - egress: - - toFQDNs: - - matchName: login.microsoftonline.com - - matchPattern: '*.microsoftonline.com' - - matchName: github.com - - matchName: api.github.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: argocd-dex-server diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-rollout.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-rollout.yaml deleted file mode 100644 index ebfed5bd..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-rollout.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics-rollout - namespace: argocd -spec: - description: Allow access to the Prometheus metrics - endpointSelector: - matchLabels: - app.kubernetes.io/instance: argo-rollouts - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "8090" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-workflows.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-workflows.yaml deleted file mode 100644 index f8f81286..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics-workflows.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics-workflows - namespace: argocd -spec: - description: Allow access to the Prometheus metrics - endpointSelector: - matchLabels: - app.kubernetes.io/instance: argo-workflows - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "9090" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index a1b0f86f..00000000 --- a/attic/charts/sys-cilium-policies/templates/argocd/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: argocd -spec: - description: Allow access to the Prometheus metrics - endpointSelector: - matchLabels: - app.kubernetes.io/instance: argocd - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "8082" - protocol: TCP - - port: "8080" - protocol: TCP - - port: "9001" - protocol: TCP - - port: "9121" - protocol: TCP - - port: "8084" - protocol: TCP - - port: "8083" - protocol: TCP - - port: "5558" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-acme-solvers.yaml b/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-acme-solvers.yaml deleted file mode 100644 index 214dade6..00000000 --- a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-acme-solvers.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-acme-solvers -spec: - description: Policy for ingress for Acme Solvers. - endpointSelector: - matchLabels: - acme.cert-manager.io/http01-solver: "true" - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-dns.yaml b/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-dns.yaml deleted file mode 100644 index 0a7f77b3..00000000 --- a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-dns.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-dns -spec: - description: 'description: Allow only dns traffic by default. Also acts as a deny-all policy' - egress: - - toEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: kube-system - k8s-app: kube-dns - toPorts: - - ports: - - port: "53" - protocol: UDP - - rules: - dns: - - matchPattern: '*' - endpointSelector: - matchExpressions: - - key: io.kubernetes.pod.namespace - operator: NotIn - values: - - kube-system diff --git a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-mariadb-operator.yaml b/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-mariadb-operator.yaml deleted file mode 100644 index a0a41bcc..00000000 --- a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-allow-mariadb-operator.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-mariadb-operator -spec: - description: allow mariadb instances to be reached by operator - endpointSelector: - matchLabels: - app.kubernetes.io/name: mariadb - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/name: mariadb-operator - io.kubernetes.pod.namespace: mariadb-operator - toPorts: - - ports: - - port: "3306" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-deny-all.yaml b/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-deny-all.yaml deleted file mode 100644 index 7ba45d08..00000000 --- a/attic/charts/sys-cilium-policies/templates/cilium/CiliumClusterwideNetworkPolicy-deny-all.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: deny-all -spec: - description: Deny all - egress: [] - endpointSelector: {} - ingress: [] diff --git a/attic/charts/sys-cilium-policies/templates/cnpg/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/cnpg/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index d32ac553..00000000 --- a/attic/charts/sys-cilium-policies/templates/cnpg/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: cnpg -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: postgres-operator diff --git a/attic/charts/sys-cilium-policies/templates/cnpg/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/sys-cilium-policies/templates/cnpg/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index 6c04cc22..00000000 --- a/attic/charts/sys-cilium-policies/templates/cnpg/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: cnpg -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/downscaler/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/downscaler/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 7c7345ec..00000000 --- a/attic/charts/sys-cilium-policies/templates/downscaler/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: kube-downscaler -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - application: downscaler-py-kube-downscaler diff --git a/attic/charts/sys-cilium-policies/templates/downscaler/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/sys-cilium-policies/templates/downscaler/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index e99b9eec..00000000 --- a/attic/charts/sys-cilium-policies/templates/downscaler/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: kube-downscaler -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index 4ffbbd8c..00000000 --- a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: ingress-nginx -spec: - egress: - - toEntities: - - kube-apiserver - - host - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-hubble-traffic.yaml b/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-hubble-traffic.yaml deleted file mode 100644 index fa9ee953..00000000 --- a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-hubble-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-traffic - namespace: ingress-nginx -spec: - egress: - - toFQDNs: - - matchPattern: hubble.*.*.* - - matchPattern: hubble.*.*.*.* - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 98bbc402..00000000 --- a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: ingress-nginx -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: ingress-nginx - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9913" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-s3-traffic.yaml b/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-s3-traffic.yaml deleted file mode 100644 index b3bcc3d3..00000000 --- a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-s3-traffic.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-s3-traffic - namespace: ingress-nginx -spec: - egress: - - toCIDR: - - 10.139.2.10/32 - - toCIDR: - - 10.139.2.11/32 - - toCIDR: - - 10.139.2.20/32 - - toCIDR: - - 10.139.2.21/32 - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-world-to-ingress-nginx.yaml b/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-world-to-ingress-nginx.yaml deleted file mode 100644 index 4ecbe4fa..00000000 --- a/attic/charts/sys-cilium-policies/templates/ingress-nginx/CiliumNetworkPolicy-allow-world-to-ingress-nginx.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-world-to-ingress-nginx - namespace: ingress-nginx -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/component: controller - app.kubernetes.io/instance: ingress-nginx - ingress: - - fromEntities: - - world - - toPorts: - - ports: - - port: "80" - protocol: TCP - - port: "443" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/jaeger/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/jaeger/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 29cd1826..00000000 --- a/attic/charts/sys-cilium-policies/templates/jaeger/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: jaeger -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/jaeger/CiliumNetworkPolicy-allow-remote-node-to-jaeger.yaml b/attic/charts/sys-cilium-policies/templates/jaeger/CiliumNetworkPolicy-allow-remote-node-to-jaeger.yaml deleted file mode 100644 index 3d1bddcd..00000000 --- a/attic/charts/sys-cilium-policies/templates/jaeger/CiliumNetworkPolicy-allow-remote-node-to-jaeger.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-jaeger - namespace: jaeger -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: jaeger-operator - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/kafka/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/kafka/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 1e35e6ad..00000000 --- a/attic/charts/sys-cilium-policies/templates/kafka/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: kafka -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: kafka-operator diff --git a/attic/charts/sys-cilium-policies/templates/kafka/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/sys-cilium-policies/templates/kafka/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index cbf9ee6b..00000000 --- a/attic/charts/sys-cilium-policies/templates/kafka/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: kafka -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-controller-metrics.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-controller-metrics.yaml deleted file mode 100644 index 31b7dacc..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-controller-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-controller-metrics - namespace: kube-system -spec: - description: Allow Controller Metrics - endpointSelector: - matchLabels: - k8s-app: kube-controller-manager - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "10257" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-csi-webhook.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-csi-webhook.yaml deleted file mode 100644 index 9e8e47fe..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-csi-webhook.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-csi-webhook - namespace: kube-system -spec: - endpointSelector: - matchLabels: - app: csi-snapshot-webhook - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns-metrics.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns-metrics.yaml deleted file mode 100644 index b4c33ac7..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns-metrics - namespace: kube-system -spec: - description: Allow DNS metrics - endpointSelector: - matchLabels: - k8s-app: kube-dns - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9153" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns-world.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns-world.yaml deleted file mode 100644 index b69f15f6..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns-world.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns-world - namespace: kube-system -spec: - description: Allow DNS World - egress: - - toCIDR: - - 8.8.8.8/32 - - 172.31.254.11/32 - - 1.1.1.1/32 - toPorts: - - ports: - - port: "53" - protocol: UDP - rules: - dns: - - matchPattern: '*' - - toEntities: - - world - toPorts: - - ports: - - port: "53" - protocol: UDP - rules: - dns: - - matchPattern: '*' - endpointSelector: - matchLabels: - k8s-app: kube-dns diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns.yaml deleted file mode 100644 index 7d19e1de..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-dns.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns - namespace: kube-system -spec: - description: Allow DNS - endpointSelector: - matchLabels: - k8s-app: kube-dns - ingress: - - fromEndpoints: - - matchExpressions: - - key: io.kubernetes.pod.namespace - operator: Exists - toPorts: - - ports: - - port: "53" - protocol: UDP diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index 08710d89..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: kube-system -spec: - description: Allow Host Traffic - egress: - - toEntities: - - remote-node - - host - - kube-apiserver - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-ingress.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-ingress.yaml deleted file mode 100644 index ec1c6cf8..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-ingress - namespace: kube-system -spec: - description: Allow Hubble ingress - endpointSelector: - matchLabels: - k8s-app: hubble-ui - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-oauth2-ingress.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-oauth2-ingress.yaml deleted file mode 100644 index 7e31779e..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-oauth2-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-oauth2-ingress - namespace: kube-system -spec: - description: Allow Hubble OAuth2 ingress - endpointSelector: - matchLabels: - k8s-app: oauth2-proxy - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-relay-metrics.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-relay-metrics.yaml deleted file mode 100644 index 676dddde..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-hubble-relay-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-hubble-relay-metrics - namespace: kube-system -spec: - description: Allow Hubble Relay Metrics - endpointSelector: - matchLabels: - k8s-app: hubble-relay - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9966" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-microsoft-sso.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-microsoft-sso.yaml deleted file mode 100644 index 71769867..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-microsoft-sso.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-microsoft-sso - namespace: kube-system -spec: - description: Allow Microsoft SSO - egress: - - toFQDNs: - - matchName: login.microsoftonline.com - - matchPattern: '*.microsoftonline.com' - - matchName: graph.microsoft.com - endpointSelector: - matchLabels: - k8s-app: oauth2-proxy diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-namespace-traffic.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-namespace-traffic.yaml deleted file mode 100644 index 9b20afc2..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-namespace-traffic.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-namespace-traffic - namespace: kube-system -spec: - description: Allow Namespace Traffic - egress: - - toEndpoints: - - {} - - toEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: kube-system - k8s-app: kube-dns - toPorts: - - ports: - - port: "53" - protocol: UDP - rules: - dns: - - matchPattern: '*' - endpointSelector: - matchLabels: {} - ingress: - - fromEndpoints: - - {} diff --git a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-proxy-metrics.yaml b/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-proxy-metrics.yaml deleted file mode 100644 index 0d99e202..00000000 --- a/attic/charts/sys-cilium-policies/templates/kube-system/CiliumNetworkPolicy-allow-proxy-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-proxy-metrics - namespace: kube-system -spec: - description: Allow Proxy metrics - endpointSelector: - matchLabels: - k8s-app: kube-proxy - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "10249" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/kubelet-serving/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/kubelet-serving/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 59732e3a..00000000 --- a/attic/charts/sys-cilium-policies/templates/kubelet-serving/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: kubelet-serving-cert-approver -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index d52ee5c9..00000000 --- a/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: kyverno -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index f547d4a5..00000000 --- a/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: kyverno -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: kyverno - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "8000" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-remote-node-to-kyverno.yaml b/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-remote-node-to-kyverno.yaml deleted file mode 100644 index 5087fa86..00000000 --- a/attic/charts/sys-cilium-policies/templates/kyverno/CiliumNetworkPolicy-allow-remote-node-to-kyverno.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-kyverno - namespace: kyverno -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: kyverno - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-loki-backend-to-api-server.yaml b/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-loki-backend-to-api-server.yaml deleted file mode 100644 index 7e43aeb7..00000000 --- a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-loki-backend-to-api-server.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-loki-backend-to-api-server - namespace: loki -spec: - description: Promtail needs to reach kube-apiserver - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki diff --git a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index e3161e8b..00000000 --- a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: loki -spec: - description: Allow Prometheus read and write - endpointSelector: - matchLabels: - app.kubernetes.io/instance: loki - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "3100" - protocol: TCP - - port: "3500" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-promtail-to-api-server.yaml b/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-promtail-to-api-server.yaml deleted file mode 100644 index 5d7cd58a..00000000 --- a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-promtail-to-api-server.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-promtail-to-api-server - namespace: loki -spec: - description: Promtail needs to reach kube-apiserver - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: promtail diff --git a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-stats-grafana.yaml b/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-stats-grafana.yaml deleted file mode 100644 index 47a8be11..00000000 --- a/attic/charts/sys-cilium-policies/templates/loki/CiliumNetworkPolicy-allow-stats-grafana.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-stats-grafana - namespace: loki -spec: - description: Allow stats - egress: - - toFQDNs: - - matchName: stats.grafana.org - endpointSelector: - matchLabels: - app.kubernetes.io/instance: loki diff --git a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index f90d4d76..00000000 --- a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: mariadb-operator -spec: - egress: - - toEntities: - - kube-apiserver - endpointSelector: - matchLabels: - app.kubernetes.io/instance: mariadb-operator diff --git a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-host-to-mariadb.yaml b/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-host-to-mariadb.yaml deleted file mode 100644 index 5da9d113..00000000 --- a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-host-to-mariadb.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-to-mariadb - namespace: mariadb-operator -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: mariadb-operator - ingress: - - fromEntities: - - host diff --git a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 726e1b72..00000000 --- a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: mariadb-operator -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: mariadb-operator - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "8080" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index 43e812ad..00000000 --- a/attic/charts/sys-cilium-policies/templates/mariadb-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: mariadb-operator -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - remote-node - toPorts: - - ports: - - port: "443" - protocol: TCP - - port: "9443" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index 7d296c8e..00000000 --- a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: mayastor -spec: - description: Allow Host Traffic - egress: - - toEntities: - - remote-node - - host - - kube-apiserver - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-agent-core.yaml b/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-agent-core.yaml deleted file mode 100644 index 00e783d1..00000000 --- a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-agent-core.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-agent-core - namespace: mayastor -spec: - description: Allow Remote to Agent Core - endpointSelector: - matchLabels: - app: agent-core - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-etcd.yaml b/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-etcd.yaml deleted file mode 100644 index 10464d0e..00000000 --- a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-etcd.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-etcd - namespace: mayastor -spec: - description: Allow Remote to Etcd - endpointSelector: - matchLabels: - app.kubernetes.io/name: etcd - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-maya.yaml b/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-maya.yaml deleted file mode 100644 index 1de55fac..00000000 --- a/attic/charts/sys-cilium-policies/templates/mayastor/CiliumNetworkPolicy-allow-remote-node-to-maya.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-maya - namespace: mayastor -spec: - description: Allow Remote to Mayastor - endpointSelector: - matchLabels: - app: api-rest - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 6c53acf9..00000000 --- a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-kube-api -spec: - description: Allow access to the Kube API server - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app: minio diff --git a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-minio-operator.yaml b/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-minio-operator.yaml deleted file mode 100644 index f5ad26b5..00000000 --- a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-minio-operator.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-minio-operator -spec: - description: Allow access to the Kube API server - endpointSelector: - matchLabels: - app: minio - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: minio-operator - toPorts: - - ports: - - port: "9000" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-nodeport-ingress.yaml b/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-nodeport-ingress.yaml deleted file mode 100644 index 83985384..00000000 --- a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumClusterwideNetworkPolicy-allow-nodeport-ingress.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumClusterwideNetworkPolicy -metadata: - name: allow-nodeport-ingress -spec: - description: Allow access to the Kube API server - endpointSelector: - matchLabels: - app: minio - ingress: - - fromEntities: - - world - toPorts: - - ports: - - port: "9000" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 83a6d612..00000000 --- a/attic/charts/sys-cilium-policies/templates/minio-operator/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: minio-operator -spec: - description: Allow access to the Kube API server - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/odigos-system/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/odigos-system/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index cb20793f..00000000 --- a/attic/charts/sys-cilium-policies/templates/odigos-system/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: odigos-system -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/odigos-system/CiliumNetworkPolicy-allow-port-4317.yaml b/attic/charts/sys-cilium-policies/templates/odigos-system/CiliumNetworkPolicy-allow-port-4317.yaml deleted file mode 100644 index f1b59b9e..00000000 --- a/attic/charts/sys-cilium-policies/templates/odigos-system/CiliumNetworkPolicy-allow-port-4317.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-port-4317 - namespace: odigos-system -spec: - egress: - - toPorts: - - ports: - - port: "4317" - protocol: TCP - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/one-password-operator/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/one-password-operator/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 23c8a706..00000000 --- a/attic/charts/sys-cilium-policies/templates/one-password-operator/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: one-password -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: one-password-operator diff --git a/attic/charts/sys-cilium-policies/templates/one-password-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml b/attic/charts/sys-cilium-policies/templates/one-password-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml deleted file mode 100644 index 9a4a6c4b..00000000 --- a/attic/charts/sys-cilium-policies/templates/one-password-operator/CiliumNetworkPolicy-allow-remote-node-webhooks.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-webhooks - namespace: one-password -spec: - endpointSelector: - matchLabels: {} - ingress: - - fromEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "9443" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/opencost/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/opencost/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index 99971950..00000000 --- a/attic/charts/sys-cilium-policies/templates/opencost/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: opencost -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: opencost diff --git a/attic/charts/sys-cilium-policies/templates/otel/CiliumNetworkPolicy-allow-otel-collector-loadbalancer-ingress.yaml b/attic/charts/sys-cilium-policies/templates/otel/CiliumNetworkPolicy-allow-otel-collector-loadbalancer-ingress.yaml deleted file mode 100644 index 80f83639..00000000 --- a/attic/charts/sys-cilium-policies/templates/otel/CiliumNetworkPolicy-allow-otel-collector-loadbalancer-ingress.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-otel-collector-loadbalancer-ingress - namespace: otel -spec: - description: Allow ingress from world - endpointSelector: - matchLabels: - app.kubernetes.io/name: opentelemetry-collector - ingress: - - fromEntities: - - world diff --git a/attic/charts/sys-cilium-policies/templates/plausible/CiliumNetworkPolicy-allow-ext.yaml b/attic/charts/sys-cilium-policies/templates/plausible/CiliumNetworkPolicy-allow-ext.yaml deleted file mode 100644 index 806e00dd..00000000 --- a/attic/charts/sys-cilium-policies/templates/plausible/CiliumNetworkPolicy-allow-ext.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-plausible-secure-external - namespace: plausible -spec: - description: Allow Plausible External - egress: - - toFQDNs: - - matchName: data.iana.org - - matchName: raw.githubusercontent.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: plausible-analytics \ No newline at end of file diff --git a/attic/charts/sys-cilium-policies/templates/plausible/CiliumNetworkPolicy-allow-gravatar.yaml b/attic/charts/sys-cilium-policies/templates/plausible/CiliumNetworkPolicy-allow-gravatar.yaml deleted file mode 100644 index 645da60f..00000000 --- a/attic/charts/sys-cilium-policies/templates/plausible/CiliumNetworkPolicy-allow-gravatar.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-plausible-secure-gravatar - namespace: plausible -spec: - description: Allow Plausible Gravatar - egress: - - toFQDNs: - - matchName: secure.gravatar.com - - matchName: gravatar.com - - matchName: www.gravatar.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: plausible-analytics \ No newline at end of file diff --git a/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-mail-egress.yaml b/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-mail-egress.yaml deleted file mode 100644 index 0691f418..00000000 --- a/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-mail-egress.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-mail-egress - namespace: postfix -spec: - description: Allow mailserver to send mails to world - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app: smtp-relay diff --git a/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-mail-ingress.yaml b/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-mail-ingress.yaml deleted file mode 100644 index a8a2d699..00000000 --- a/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-mail-ingress.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-mail-ingress - namespace: postfix -spec: - description: Allow all services in cluster to send mail - endpointSelector: - matchLabels: - app: smtp-relay - ingress: - - fromEndpoints: - - matchExpressions: - - key: io.kubernetes.pod.namespace - operator: Exists - toPorts: - - ports: - - port: "25" - protocol: TCP - - port: "587" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 0bac3318..00000000 --- a/attic/charts/sys-cilium-policies/templates/postfix/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: postfix -spec: - description: 'Allow prometheus metrics ' - endpointSelector: - matchLabels: - app: smtp-relay - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - toPorts: - - ports: - - port: "9154" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-alerting.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-alerting.yaml deleted file mode 100644 index e092cb26..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-alerting.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-alerting - namespace: prometheus -spec: - description: Allow alerting - egress: - - toEntities: - - world - endpointSelector: - matchLabels: - app.kubernetes.io/instance: prom-alertmanager diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-alertmanager-ingress.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-alertmanager-ingress.yaml deleted file mode 100644 index b6f96e64..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-alertmanager-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-alertmanager-ingress - namespace: prometheus -spec: - description: Allow Nginx ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: alertmanager - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-dns-metrics.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-dns-metrics.yaml deleted file mode 100644 index 0ee91e6e..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-dns-metrics.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-dns-metrics - namespace: prometheus -spec: - description: Allow DNS metrics - egress: - - toPorts: - - ports: - - port: "9153" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-etcd-metrics.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-etcd-metrics.yaml deleted file mode 100644 index 90ac789e..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-etcd-metrics.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-etcd-metrics - namespace: prometheus -spec: - description: Allow ETCD metrics - egress: - - toPorts: - - ports: - - port: "2379" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-ingress.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-ingress.yaml deleted file mode 100644 index fca3baf2..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-ingress - namespace: prometheus -spec: - description: Allow Grafana ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-oidc-login.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-oidc-login.yaml deleted file mode 100644 index ed2084fe..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-oidc-login.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-oidc-login - namespace: prometheus -spec: - description: Allow Grafana OIDC login - egress: - - toFQDNs: - - matchName: login.microsoftonline.com - - matchPattern: '*.microsoftonline.com' - - matchName: api.github.com - - matchName: github.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-plugins.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-plugins.yaml deleted file mode 100644 index 60721c6a..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-plugins.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-plugins - namespace: prometheus -spec: - description: Allow Grafana Plugins - egress: - - toFQDNs: - - matchName: grafana.com - - matchName: storage.googleapis.com - - matchName: raw.githubusercontent.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-secure-gravatar.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-secure-gravatar.yaml deleted file mode 100644 index 453c2330..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-grafana-secure-gravatar.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-grafana-secure-gravatar - namespace: prometheus -spec: - description: Allow Grafana Secure Gravatar - egress: - - toFQDNs: - - matchName: secure.grafana.com - - matchName: secure.gravatar.com - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-host-traffic.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-host-traffic.yaml deleted file mode 100644 index bb3a591a..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-host-traffic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-host-traffic - namespace: prometheus -spec: - description: Allow Host Traffic - egress: - - toEntities: - - remote-node - - host - - kube-apiserver - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-nginx-ingress.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-nginx-ingress.yaml deleted file mode 100644 index ac650e55..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-nginx-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-nginx-ingress - namespace: prometheus -spec: - description: Allow Nginx ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-opencost-scrape.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-opencost-scrape.yaml deleted file mode 100644 index 4b7bd679..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-opencost-scrape.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-opencost-scrape - namespace: prometheus -spec: - description: Allow OpenCost scrape - endpointSelector: - matchLabels: - app.kubernetes.io/name: prometheus - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/name: opencost - io.kubernetes.pod.namespace: opencost - - toPorts: - - ports: - - port: "9090" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-metrics-server.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-metrics-server.yaml deleted file mode 100644 index 0603da13..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-metrics-server.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-metrics-server - namespace: prometheus -spec: - description: Allow Remote Metrics Server - endpointSelector: - matchLabels: - app.kubernetes.io/instance: metrics-server - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-webhook.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-webhook.yaml deleted file mode 100644 index eeabfcbd..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-remote-node-to-webhook.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-remote-node-to-webhook - namespace: prometheus -spec: - description: Allow Remote Web Hook - endpointSelector: - matchLabels: - app: kube-prometheus-stack-operator - ingress: - - fromEntities: - - remote-node diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-robusta-ingress.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-robusta-ingress.yaml deleted file mode 100644 index c1856c3f..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-robusta-ingress.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-robusta-ingress - namespace: prometheus -spec: - description: Allow Robusta ingress - endpointSelector: - matchLabels: - app.kubernetes.io/name: prom-prometheus - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: robusta diff --git a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-stats-grafana.yaml b/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-stats-grafana.yaml deleted file mode 100644 index 5d1ed102..00000000 --- a/attic/charts/sys-cilium-policies/templates/prometheus/CiliumNetworkPolicy-allow-stats-grafana.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-stats-grafana - namespace: prometheus -spec: - description: Allow stats - egress: - - toFQDNs: - - matchName: stats.grafana.org - endpointSelector: - matchLabels: - app.kubernetes.io/name: grafana diff --git a/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-inter-node-traffic.yaml b/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-inter-node-traffic.yaml deleted file mode 100644 index d06ad626..00000000 --- a/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-inter-node-traffic.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-inter-node-traffic - namespace: rabbitmq -spec: - description: Allow communication between nodes int the RabbitMQ cluster - egress: - - toEndpoints: - - matchLabels: - app.kubernetes.io/component: rabbitmq - toPorts: - - ports: - - port: "4369" - - endPort: 6500 - port: "6000" - - port: "25672" - - port: "35672" - - port: "35673" - - port: "35674" - - port: "35675" - - port: "35676" - - port: "35677" - - port: "35678" - - port: "35679" - - port: "35680" - - port: "35681" - - port: "35682" - endpointSelector: - matchLabels: - app.kubernetes.io/component: rabbitmq - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/component: rabbitmq - toPorts: - - ports: - - port: "4369" - - endPort: 6500 - port: "6000" - - port: "25672" - - port: "35672" - - port: "35673" - - port: "35674" - - port: "35675" - - port: "35676" - - port: "35677" - - port: "35678" - - port: "35679" - - port: "35680" - - port: "35681" - - port: "35682" diff --git a/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-operator-traffic.yaml b/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-operator-traffic.yaml deleted file mode 100644 index b7deeb34..00000000 --- a/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-operator-traffic.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-operator-traffic - namespace: rabbitmq -spec: - description: Allow access to the RabbitMQ operator - endpointSelector: - matchLabels: - app.kubernetes.io/component: rabbitmq - ingress: - - fromEndpoints: - - matchLabels: - app.kubernetes.io/component: rabbitmq-operator - toPorts: - - ports: - - port: "15672" - - port: "15671" diff --git a/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-rabbitmq-traffic.yaml b/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-rabbitmq-traffic.yaml deleted file mode 100644 index f57cd209..00000000 --- a/attic/charts/sys-cilium-policies/templates/rabbitmq/CiliumNetworkPolicy-allow-rabbitmq-traffic.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-rabbitmq-traffic - namespace: rabbitmq -spec: - description: Allow access to the RabbitMQ cluster - endpointSelector: - matchLabels: - app.kubernetes.io/component: rabbitmq - ingress: - - toPorts: - - ports: - - port: "5672" - - port: "5671" - - port: "5552" - - port: "5551" - - port: "15672" - - port: "15671" - - port: "61613" - - port: "61614" - - port: "1883" - - port: "8883" - - port: "15674" - - port: "15675" - - port: "15692" - - port: "15691" diff --git a/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-ingress.yaml b/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-ingress.yaml deleted file mode 100644 index 5e8415c3..00000000 --- a/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-ingress.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-ingress - namespace: robusta -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/component: server - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: ingress-nginx diff --git a/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index f91eed07..00000000 --- a/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: robusta -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-slack.yaml b/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-slack.yaml deleted file mode 100644 index 86f00f44..00000000 --- a/attic/charts/sys-cilium-policies/templates/robusta/CiliumNetworkPolicy-allow-slack.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-slack - namespace: prometheus -spec: - egress: - - toFQDNs: - - matchPattern: slack.com - - matchName: hooks.slack.com - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/rook-ceph/CiliumNetworkPolicy-allow-oceanbox-subnet.yaml b/attic/charts/sys-cilium-policies/templates/rook-ceph/CiliumNetworkPolicy-allow-oceanbox-subnet.yaml deleted file mode 100644 index 960eac40..00000000 --- a/attic/charts/sys-cilium-policies/templates/rook-ceph/CiliumNetworkPolicy-allow-oceanbox-subnet.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-oceanbox-subnet - namespace: rook-ceph -spec: - description: Allow oceanbox traffic - egress: - - toCIDR: - - 10.255.241.0/24 - - toCIDR: - - 10.255.244.0/24 - endpointSelector: - matchLabels: {} - ingress: - - fromCIDR: - - 10.255.241.0/24 - - fromCIDR: - - 10.255.244.0/24 diff --git a/attic/charts/sys-cilium-policies/templates/s3-sync/CiliumNetworkPolicy-allow-s3-internal.yaml b/attic/charts/sys-cilium-policies/templates/s3-sync/CiliumNetworkPolicy-allow-s3-internal.yaml deleted file mode 100644 index cd00612d..00000000 --- a/attic/charts/sys-cilium-policies/templates/s3-sync/CiliumNetworkPolicy-allow-s3-internal.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-s3-internal - namespace: s3-sync -spec: - description: Allow s3 traffic internal - egress: - - toCIDR: - - 10.139.2.20/32 - - toCIDR: - - 10.139.2.21/32 - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/s3-sync/CiliumNetworkPolicy-allow-s3-sync.yaml b/attic/charts/sys-cilium-policies/templates/s3-sync/CiliumNetworkPolicy-allow-s3-sync.yaml deleted file mode 100644 index 58b8e709..00000000 --- a/attic/charts/sys-cilium-policies/templates/s3-sync/CiliumNetworkPolicy-allow-s3-sync.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-s3-sync - namespace: s3-sync -spec: - description: Allow sync to safespring - egress: - - toFQDNs: - - matchName: s3.osl2.safedc.net - endpointSelector: - matchLabels: {} diff --git a/attic/charts/sys-cilium-policies/templates/sealed-secrets/CiliumNetworkPolicy-allow-kube-api.yaml b/attic/charts/sys-cilium-policies/templates/sealed-secrets/CiliumNetworkPolicy-allow-kube-api.yaml deleted file mode 100644 index d56b8d90..00000000 --- a/attic/charts/sys-cilium-policies/templates/sealed-secrets/CiliumNetworkPolicy-allow-kube-api.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-kube-api - namespace: sealed-secrets -spec: - egress: - - toEntities: - - kube-apiserver - - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: sealed-secrets diff --git a/attic/charts/sys-cilium-policies/templates/tempo/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/tempo/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index aa3ddd8c..00000000 --- a/attic/charts/sys-cilium-policies/templates/tempo/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: tempo -spec: - egress: - - toPorts: - - ports: - - port: "7946" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: tempo diff --git a/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index cb01381b..00000000 --- a/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: velero -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: velero diff --git a/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-job-api-server.yaml b/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-job-api-server.yaml deleted file mode 100644 index 21c8e2ff..00000000 --- a/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-job-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-job-api-server - namespace: velero -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - batch.kubernetes.io/job-name: velero-upgrade-crds diff --git a/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index 1631d4bf..00000000 --- a/attic/charts/sys-cilium-policies/templates/velero/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: velero -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: velero - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "8085" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/templates/x509-exporter/CiliumNetworkPolicy-allow-api-server.yaml b/attic/charts/sys-cilium-policies/templates/x509-exporter/CiliumNetworkPolicy-allow-api-server.yaml deleted file mode 100644 index 7742a0fe..00000000 --- a/attic/charts/sys-cilium-policies/templates/x509-exporter/CiliumNetworkPolicy-allow-api-server.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-api-server - namespace: x509-exporter -spec: - egress: - - toEntities: - - kube-apiserver - toPorts: - - ports: - - port: "6443" - protocol: TCP - endpointSelector: - matchLabels: - app.kubernetes.io/instance: x509-exporter diff --git a/attic/charts/sys-cilium-policies/templates/x509-exporter/CiliumNetworkPolicy-allow-prometheus-metrics.yaml b/attic/charts/sys-cilium-policies/templates/x509-exporter/CiliumNetworkPolicy-allow-prometheus-metrics.yaml deleted file mode 100644 index cc040dd9..00000000 --- a/attic/charts/sys-cilium-policies/templates/x509-exporter/CiliumNetworkPolicy-allow-prometheus-metrics.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: cilium.io/v2 -kind: CiliumNetworkPolicy -metadata: - name: allow-prometheus-metrics - namespace: x509-exporter -spec: - endpointSelector: - matchLabels: - app.kubernetes.io/instance: x509-exporter - ingress: - - fromEndpoints: - - matchLabels: - io.kubernetes.pod.namespace: prometheus - - toPorts: - - ports: - - port: "9793" - protocol: TCP diff --git a/attic/charts/sys-cilium-policies/values.yaml b/attic/charts/sys-cilium-policies/values.yaml deleted file mode 100644 index 3964005c..00000000 --- a/attic/charts/sys-cilium-policies/values.yaml +++ /dev/null @@ -1,5 +0,0 @@ -s3: - hosts: - patterns: - cidr: - - 10.255.241.30/32 diff --git a/attic/nix/atlantis.nix b/attic/nix/atlantis.nix deleted file mode 100644 index bff50005..00000000 --- a/attic/nix/atlantis.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib, config, ... }: -let - cfg = config.apps.atlantis; - env = config.apps.env; - - values = lib.apps.appValues { - inherit env; - base = ../values/atlantis; - extraValues = { }; - }; - - kustomize = - r: - if r.kind == "Deployment" then - lib.attrsets.recursiveUpdate r { - spec.template.spec.containers = builtins.map ( - x: - x - // { - livenessProbe.httpGet.path = "/healthz"; - readinessProble.httpGet.path = "/healthz"; - env = x.env ++ [ - { - name = "INERNAL_PORT"; - value = 8000; - } - ]; - } - ) r.spec.template.spec.containers; - } - else if r.kind == "Service" then - { } - else - r; -in -{ - options.apps.atlantis = lib.apps.appOptions { - revision = lib.mkOption { - type = lib.types.str; - default = "main"; - description = "Revision"; - }; - - hostname = lib.mkOption { - type = lib.types.str; - default = if env == "prod" then "maps.oceanbox.io" else "atlantis.beta.oceanbox.io"; - description = "Revision"; - }; - }; - - config = lib.apps.appConfig cfg "${env}-atlantis" { - helm.releases."${env}-atlantis" = { - inherit values; - chart = ../charts/atlantis; - transformer = rs: builtins.map (x: kustomize x) rs; - }; - }; -} diff --git a/attic/nix/default.nix b/attic/nix/default.nix deleted file mode 100644 index 6277483d..00000000 --- a/attic/nix/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: -{ - imports = [ - ./atlantis.nix - ./openfga.nix - ]; -} diff --git a/attic/nix/openfga.nix b/attic/nix/openfga.nix deleted file mode 100644 index 9145bfc7..00000000 --- a/attic/nix/openfga.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, config, ... }: -let - cfg = config.apps.openfga; - env = config.apps.env; - - values = lib.apps.appValues { - inherit env; - base = ../values/openfga; - extraValues = { }; - }; - - kustomize = - r: if r.kind == "Job" then lib.attrsets.recursiveUpdate r { spec.backoffLimit = 2; } else r; - -in -{ - options.apps.openfga = lib.apps.appOptions { }; - - config = lib.apps.appConfig cfg "${env}-openfga" { - helm.releases."${env}-openfga" = { - inherit values; - chart = lib.helm.downloadHelmChart { - repo = "https://openfga.github.io/helm-charts"; - chart = "openfga"; - version = "0.2.12"; - chartHash = "sha256-7yLcw9/oNPvCePrtTJwKAG88t0Ym5Dl/S83Gz+gQdDU="; - }; - transformer = rs: builtins.map (x: kustomize x) rs; - }; - - annotations = { }; - resources = { - services.poop.spec = { - }; - }; - }; -} diff --git a/attic/old/jaeger-operator.yaml b/attic/old/jaeger-operator.yaml deleted file mode 100644 index 31848608..00000000 --- a/attic/old/jaeger-operator.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if .Values.jaeger-operator.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: jaeger - namespace: argocd -spec: - project: atlantis - destination: - server: https://kubernetes.default.svc - namespace: jaeger - sources: - - repoURL: https://jaegertracing.github.io/helm-charts - targetRevision: 2.54.0 - chart: jaeger-operator - helm: - valueFiles: - - $values/values/jaeger/values.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - # path: values/jaeger/manifests - ref: values - -{{- end }} diff --git a/attic/old/loki.yaml b/attic/old/loki.yaml deleted file mode 100644 index 2e46746d..00000000 --- a/attic/old/loki.yaml +++ /dev/null @@ -1,152 +0,0 @@ -{{- if .Values.loki.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: loki - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: loki - server: 'https://kubernetes.default.svc' - project: aux - ignoreDifferences: - - group: apps - kind: StatefulSet - jsonPointers: - - /spec/persistentVolumeClaimRetentionPolicy - syncPolicy: - managedNamespaceMetadata: - labels: - component: aux - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - selfHeal: true - sources: - - repoURL: https://gitlab.com/oceanbox/manifests.git - path: policies/oceanbox/network/loki - targetRevision: HEAD - - repoURL: 'https://grafana.github.io/helm-charts' - targetRevision: 6.12.0 - chart: loki - helm: - values: | - loki: - auth_enabled: false - storage: - bucketNames: - chunks: loki-chunks - ruler: loki-chunks - admin: loki-chunks - s3: - endpoint: http://10.255.241.30:30080 - region: tos - accessKeyId: ${S3KEY} - secretAccessKey: ${S3SECRET} - s3ForcePathStyle: true - http_config: - insecure_skip_verify: true - schemaConfig: - configs: - - from: "2024-04-01" - index: - period: 24h - prefix: loki_index_ - object_store: s3 - schema: v13 - store: tsdb - compactor: - compaction_interval: 10m - working_directory: /tmp/loki/compactor - retention_enabled: true - retention_delete_delay: 2h - retention_delete_worker_count: 150 - delete_request_store: s3 - limits_config: - retention_period: 744h - write: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_ID - - name: S3SECRET - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_SECRET - tolerations: - - effect: "NoSchedule" - operator: "Equal" - key: "unschedulable" - value: "true" - read: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_ID - - name: S3SECRET - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_SECRET - tolerations: - - effect: "NoSchedule" - operator: "Equal" - key: "unschedulable" - value: "true" - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: letsencrypt-staging - nginx.ingress.kubernetes.io/ssl-redirect: "true" - oceanbox.io/expose: internal - hosts: - - loki.adm.oceanbox.io - tls: - - hosts: - - loki.adm.oceanbox.io - secretName: loki-distributed-tls - compactor: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_ID - - name: S3SECRET - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_SECRET - backend: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_ID - - name: S3SECRET - valueFrom: - secretKeyRef: - name: loki-s3 - key: AWS_ACCESS_KEY_SECRET -{{- end }} diff --git a/attic/old/opentelemetry-collector.yaml b/attic/old/opentelemetry-collector.yaml deleted file mode 100644 index 1714c341..00000000 --- a/attic/old/opentelemetry-collector.yaml +++ /dev/null @@ -1,111 +0,0 @@ -{{- if .Values.opentelemetry-collector.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: opentelemetry-collector - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: otel - server: 'https://kubernetes.default.svc' - project: aux - syncPolicy: - # managedNamespaceMetadata: - # labels: - # component: aux - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - selfHeal: true - sources: - - repoURL: 'https://open-telemetry.github.io/opentelemetry-helm-charts' - targetRevision: 0.107.0 - chart: opentelemetry-collector - helm: - values: | - mode: deployment - image: - repository: otel/opentelemetry-collector-k8s - service: - type: LoadBalancer - loadBalancerIP: 10.255.241.12 - config: - receivers: - prometheus/collector: - config: - scrape_configs: - - job_name: 'opentelemetry-collector' - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - exporters: - otlp: - endpoint: "tempo.tempo.svc:4317" - tls: - insecure: true - otlphttp/metrics: - endpoint: http://prom-prometheus.prometheus:9090/api/v1/otlp - tls: - insecure: true - otlphttp/logs: - endpoint: http://loki-write-headless.loki:3100/otlp - tls: - insecure: true - debug/metrics: - verbosity: detailed - debug/traces: - verbosity: detailed - debug/logs: - verbosity: detailed - service: - telemetry: - logs: - level: "info" - pipelines: - traces: - receivers: [otlp,zipkin] - processors: [batch] - exporters: [otlp] - # exporters: [otlphttp/traces,debug/traces] - metrics: - receivers: [otlp,prometheus/collector] - processors: [batch] - exporters: [otlphttp/metrics] - # exporters: [otlphttp/metrics,debug/metrics] - logs: - receivers: [otlp] - processors: [batch] - exporters: [otlphttp/logs] - # exporters: [otlphttp/logs,debug/logs] - ports: - metrics: - enabled: true - # presets: - # logsCollection: - # enabled: true - ingress: - enabled: false - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - nginx.ingress.kubernetes.io/ssl-redirect: "true" - oceanbox.io/expose: internal - ingressClassName: nginx - hosts: - - host: opentelemetry-collector.adm.oceanbox.io - paths: - - path: / - pathType: Prefix - port: 4318 - tls: - - secretName: collector-tls - hosts: - - opentelemetry-collector.adm.oceanbox.io -{{- end }} diff --git a/attic/old/tempo.yaml b/attic/old/tempo.yaml deleted file mode 100644 index 80e97ff9..00000000 --- a/attic/old/tempo.yaml +++ /dev/null @@ -1,78 +0,0 @@ -{{- if .Values.tempo.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: tempo - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: tempo - server: 'https://kubernetes.default.svc' - project: aux - syncPolicy: - # managedNamespaceMetadata: - # labels: - # component: aux - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - selfHeal: true - sources: - - repoURL: 'https://grafana.github.io/helm-charts' - targetRevision: 1.10.3 - chart: tempo - helm: - values: | - tempo: - storage: - trace: - backend: s3 - s3: - bucket: tempo-traces - endpoint: 10.255.241.30:30080 - access_key: ${S3KEY} - secret_key: ${S3SECRET} - forcepathstyle: true - insecure: true - local: - path: /var/tempo/traces - wal: - path: /var/tempo/wal - metricsGenerator: - enabled: true - remoteWriteUrl: "http://prom-prometheus.prometheus:9090/api/v1/write" - extraArgs: { config.expand-env=true } - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: tempo-s3 - key: AWS_ACCESS_KEY_ID - - name: S3SECRET - valueFrom: - secretKeyRef: - name: tempo-s3 - key: AWS_ACCESS_KEY_SECRET - tempoQuery: - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: letsencrypt-staging - nginx.ingress.kubernetes.io/ssl-redirect: "true" - oceanbox.io/expose: internal - path: / - pathType: Prefix - hosts: - - query.tempo.adm.oceanbox.io - tls: - - secretName: tempo-query-tls - hosts: - - query.tempo.adm.oceanbox.io -{{- end }} diff --git a/attic/policy.hujson b/attic/policy.hujson deleted file mode 100644 index 7ebb297a..00000000 --- a/attic/policy.hujson +++ /dev/null @@ -1,148 +0,0 @@ -{ - // groups are collections of users having a common scope. A user can be in multiple groups - // groups cannot be composed of groups - "groups": { - "group:admin": [ - "jonas.juselius@oceanbox.io", - "Moritz.Jorg@oceanbox.io", - "simen.kirkvik@oceanbox.io", - "stig.r.jensen@oceanbox.io", - "system-tos", - ], - "group:devops": [ - "jonas.juselius@oceanbox.io", - "Moritz.Jorg@oceanbox.io", - "stig.r.jensen@oceanbox.io", - "radovan.bast@oceanbox.io", - "simen.kirkvik@oceanbox.io", - "Ole.Tytlandsvik@tromso.serit.no", - ], - "group:oceanographer": [ - "frank.gaardsted@oceanbox.io", - "ole.anders.nost@oceanbox.io", - "helge.avlesen@oceanbox.io", - "isa.rosso@oceanbox.io", - "jonathan.lilly@oceanbox.io", - ], - "group:manager": [ - "svenn.hanssen@oceanbox.io", - "hilde.iversen@oceanbox.io", - ], - "group:dev": [], - "group:intern": [], - }, - // tagOwners in tailscale is an association between a TAG and the people allowed to set this TAG on a server. - // This is documented [here](https://tailscale.com/kb/1068/acl-tags#defining-a-tag) - // and explained [here](https://tailscale.com/blog/rbac-like-it-was-meant-to-be/) - "tagOwners": { - "tag:k8s": [ "group:admin" ], - "tag:hpc": [ "group:admin" ], - }, - // hosts should be defined using its IP addresses and a subnet mask. - // to define a single host, use a /32 mask. You cannot use DNS entries here, - // as they're prone to be hijacked by replacing their IP addresses. - // see https://github.com/tailscale/tailscale/issues/3800 for more information. - "hosts": { - "ingress.ekman.tos": "10.255.241.99/32", - "ingress.ceph.tos": "10.255.241.10/32", - "ingress.ceph.vtn": "172.16.239.50/32", - "ingress.adm.ceph.vtn": "172.16.239.51/32", - "ingress.oceanbox.tos": "10.255.241.11/32", - "manage.ekman.tos": "10.255.241.99/32", - "k8s.oceanbox.tos": "10.255.241.200/32", - "k8s.ekman.tos": "10.255.241.99/32", - "k8s.ceph.tos": "10.255.241.29/32", - "printer.office.tos": "10.132.46.108/32", - "net.office.tos": "10.132.46.0/24", - "net.dc.tos": "10.255.241.0/24", - "net.100gbe.tos": "10.255.244.0/24", - "net.mgmt.tos": "10.255.240.0/24", - "net.dc.vtn": "172.16.239.0/24", - "net.mgmt.vtn": "172.16.238.0/24", - }, - "acls": [ - { - "action": "accept", - "src": [ - "group:admin", - "group:devops", - "group:oceanographer", - "group:manager", - "group:dev", - ], - "dst": [ - "100.64.0.0/24:0", - "100.64.0.0/24:22", - ] - }, - { - "action": "accept", - "src": [ "ekman", "net.dc.tos" ], - "dst": [ - "net.dc.vtn:*", - "100.64.0.0/24:0", - "100.64.0.0/24:22", - ] - }, - { - "action": "accept", - "src": [ "rossby", "net.dc.vtn" ], - "dst": [ - "net.dc.tos:*", - "100.64.0.0/24:0", - "100.64.0.0/24:22", - ] - }, - { - "action": "accept", - "src": [ "group:admin" ], - "dst": [ - "net.dc.tos:*", - "net.mgmt.tos:*", - "net.100gbe.tos:*", - "net.office.tos:*", - "net.dc.vtn:*", - "net.mgmt.vtn:*", - ] - }, - { - "action": "accept", - "src": [ "group:devops" ], - "dst": [ - "k8s.oceanbox.tos:6443", - "k8s.ekman.tos:4443", - ] - }, - { - "action": "accept", - "src": [ - "group:admin", - "group:devops", - "group:oceanographer", - "group:manager", - "group:dev", - ], - "dst": [ - "ingress.oceanbox.tos:443", - "ingress.ekman.tos:443", - "printer.office.tos:631", - "10.255.241.99/32:22", - "10.255.241.100/32:22", - ] - }, - { - "action": "accept", - "src": [ - "group:admin", - "group:devops", - "group:oceanographer", - "group:manager", - "group:dev", - ], - "dst": [ - "100.64.0.0/24:*", - "autogroup:internet:*", - ] - }, - ] -} diff --git a/attic/templates/actions-runner-controller.yaml b/attic/templates/actions-runner-controller.yaml deleted file mode 100644 index b3f34e57..00000000 --- a/attic/templates/actions-runner-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ -{{ if .Values.actions_runner_controller.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: actions-runner-controller - namespace: argocd #TODO move arc to isolated project -spec: - destination: - namespace: actions-runner-controller - server: 'https://kubernetes.default.svc' - sources: - - repoURL: 'https://actions-runner-controller.github.io/actions-runner-controller' - targetRevision: {{ .Values.actions_runner_controller.version }} - chart: actions-runner-controller - helm: - values: | - replicaCount: 1 - # Webhook - webhookPort: 9443 - syncPeriod: 1m - defaultScaleDownDelay: 10m - # Authentication - authSecret: - enabled: true - create: false - name: arc-gh-token - annotations: {} - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - - ServerSideApply=true - {{- if .Values.actions_runner_controller.version }} - automated: - # selfHeal: false - prune: true - {{- end }} -{{ end }} diff --git a/attic/templates/argo-rollouts.yaml b/attic/templates/argo-rollouts.yaml deleted file mode 100644 index 136bced8..00000000 --- a/attic/templates/argo-rollouts.yaml +++ /dev/null @@ -1,37 +0,0 @@ -{{- if .Values.argo_rollouts.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argo-rollouts - namespace: argocd - annotations: - argocd.argoproj.io/sync-wave: "-1" -spec: - destination: - namespace: argocd - server: 'https://kubernetes.default.svc' - sources: - #- repoURL: {{ .Values.cluster_config.manifests }} - # path: {{ .Values.cluster_config.policies }}/argo-rollouts - # targetRevision: HEAD - - repoURL: 'https://argoproj.github.io/argo-helm' - targetRevision: {{ .Values.argo_rollouts.version }} - chart: argo-rollouts - helm: - values: | - dashboard: - enabled: {{ .Values.argo_rollouts.dashboard_enabled }} - {{- with .Values.argo_rollouts.metrics.enabled }} - controller: - metrics: - enabled: true - serviceMonitor: - enabled: true - {{- end }} - project: sys - {{- if .Values.argo_rollouts.autosync }} - syncPolicy: - automated: - prune: true - {{- end }} -{{- end }} diff --git a/attic/templates/argo-workflows.yaml b/attic/templates/argo-workflows.yaml deleted file mode 100644 index b7515f71..00000000 --- a/attic/templates/argo-workflows.yaml +++ /dev/null @@ -1,43 +0,0 @@ -{{- if .Values.argo_workflows.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argo-workflows - namespace: argocd - annotations: - argocd.argoproj.io/sync-wave: "-1" -spec: - destination: - namespace: argocd - server: 'https://kubernetes.default.svc' - sources: - - repoURL: 'https://argoproj.github.io/argo-helm' - targetRevision: {{ .Values.argo_workflows.version }} - chart: argo-workflows - helm: - values: | - controller: - workflowNamespaces: - {{- .Values.argo_workflows.allowed_namespaces | toYaml | nindent 10 }} - {{- with .Values.argo_workflows.metrics.enabled }} - metricsConfig: - enabled: true - serviceMonitor: - enabled: true - {{- end }} - server: - extraArgs: - - --auth-mode=server - workflow: - rbac: - create: true - serviceAccount: - create: true - name: argo-workflow - project: argo-workflows - {{- if .Values.argo_workflows.autosync }} - syncPolicy: - automated: - prune: true - {{- end }} -{{- end }} diff --git a/attic/templates/argocd-apps.yaml b/attic/templates/argocd-apps.yaml deleted file mode 100644 index 7447c5fd..00000000 --- a/attic/templates/argocd-apps.yaml +++ /dev/null @@ -1,154 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd-apps - namespace: argocd -spec: - destination: - namespace: argocd - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://argoproj.github.io/argo-helm' - targetRevision: {{ .Values.argocd_apps.version }} - chart: argocd-apps - helm: - values: | - projects: - # System component project - - name: sys - namespace: argocd - description: sys components project - sourceRepos: - - '{{ .Values.cluster_config.manifests }}' - - 'https://argoproj.github.io/argo-helm' - - 'https://gitlab.com/oceanbox/manifests.git' - - 'https://kubernetes-sigs.github.io/metrics-server/' - - 'https://kubernetes.github.io/ingress-nginx' - - 'https://cloudnative-pg.github.io/charts' - - 'https://charts.jetstack.io' - - 'https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/' - - 'https://github.com/kubernetes/dashboard' - - 'https://bitnami-labs.github.io/sealed-secrets' - - 'https://prometheus-community.github.io/helm-charts' - - 'https://github.com/prometheus-community/helm-charts.git' - - 'https://charts.gitlab.io/' - - 'https://charts.bitnami.com/bitnami' - - 'https://helm.linkerd.io/stable' - - 'https://github.com/jaegertracing/jaeger-operator' - - 'https://kyverno.github.io/kyverno/' - - 'https://vmware-tanzu.github.io/helm-charts' - - 'https://grafana.github.io/helm-charts' - - 'https://charts.enix.io' - - 'https://helm.mariadb.com/mariadb-operator' - - 'https://helm.cilium.io' - - 'https://chartmuseum.github.io/charts' - - 'https://open-telemetry.github.io/opentelemetry-helm-charts' - - 'https://strimzi.io/charts' - - 'https://helm.elastic.co' - - 'https://1password.github.io/connect-helm-charts' - - 'https://actions-runner-controller.github.io/actions-runner-controller' - - 'https://imio.github.io/helm-charts' - - 'https://docs.altinity.com/clickhouse-operator' - - destinations: - - namespace: argocd - server: https://kubernetes.default.svc - - namespace: kube-system - server: https://kubernetes.default.svc - - namespace: ingress-nginx - server: https://kubernetes.default.svc - - namespace: prometheus - server: https://kubernetes.default.svc - - namespace: cnpg - server: https://kubernetes.default.svc - - namespace: cert-manager - server: https://kubernetes.default.svc - - namespace: kubernetes-dashboard - server: https://kubernetes.default.svc - - namespace: rabbitmq - server: https://kubernetes.default.svc - - namespace: sealed-secrets - server: https://kubernetes.default.svc - - namespace: gitlab - server: https://kubernetes.default.svc - - namespace: thanos - server: https://kubernetes.default.svc - - namespace: linkerd - server: https://kubernetes.default.svc - - namespace: linkerd-multicluster - server: https://kubernetes.default.svc - - namespace: observability - server: https://kubernetes.default.svc - - namespace: kyverno - server: https://kubernetes.default.svc - - namespace: velero - server: https://kubernetes.default.svc - - namespace: loki - server: https://kubernetes.default.svc - - namespace: tempo - server: https://kubernetes.default.svc - - namespace: otel - server: https://kubernetes.default.svc - - namespace: x509-exporter - server: https://kubernetes.default.svc - - namespace: mariadb-operator - server: https://kubernetes.default.svc - - namespace: cilium-spire - server: https://kubernetes.default.svc - - namespace: cilium-secrets - server: https://kubernetes.default.svc - - namespace: actions-runner-controller - server: https://kubernetes.default.svc - - namespace: analytics - server: https://kubernetes.default.svc - - namespace: clickhouse - server: https://kubernetes.default.svc - clusterResourceWhitelist: - - group: '*' - kind: '*' - - {{- if .Values.argo_workflows.enabled }} - - name: argo-workflows - namespace: argocd - description: argo-workflows resources - sourceRepos: - - 'https://argoproj.github.io/argo-helm' - destinations: - - namespace: argocd - server: https://kubernetes.default.svc - {{- range .Values.argo_workflows.allowed_namespaces }} - - namespace: {{.}} - server: https://kubernetes.default.svc - {{- end }} - namespaceResourceWhitelist: - - group: "rbac.authorization.k8s.io" - kind: Role - - group: "rbac.authorization.k8s.io" - kind: RoleBinding - - group: "" - kind: ConfigMap - - group: "" - kind: Secret - - group: "" - kind: Service - - group: "" - kind: ServiceAccount - - group: apps - kind: Deployment - - group: "monitoring.coreos.com" - kind: ServiceMonitor - clusterResourceWhitelist: - - group: rbac.authorization.k8s.io - kind: ClusterRole - - group: rbac.authorization.k8s.io - kind: ClusterRoleBinding - - group: apiextensions.k8s.io - kind: CustomResourceDefinition - {{- end }} - project: sys - syncPolicy: - automated: {} - syncOptions: - - ServerSideApply=true - - CreateNamespace=true - - ApplyOutOfSyncOnly=true diff --git a/attic/templates/busynix.yaml b/attic/templates/busynix.yaml deleted file mode 100644 index d232531e..00000000 --- a/attic/templates/busynix.yaml +++ /dev/null @@ -1,23 +0,0 @@ -{{- if .Values.busynix.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: busynix - namespace: argocd -spec: - project: aux - destination: - namespace: default - server: https://kubernetes.default.svc - source: - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: values/busynix - plugin: - name: kustomize-helm-with-rewrite - parameters: - - name: env - string: staging - - name: hostname - string: busynix.beta.oceanbox.io -{{- end }} diff --git a/attic/templates/cert-manager.yaml b/attic/templates/cert-manager.yaml deleted file mode 100644 index c510a4f8..00000000 --- a/attic/templates/cert-manager.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd -spec: - destination: - namespace: cert-manager - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/cert-manager - targetRevision: HEAD - - repoURL: 'https://charts.jetstack.io' - targetRevision: {{ .Values.cert_manager.version }} - chart: cert-manager - helm: - values: | - installCRDs: true - enableCertificateOwnerRef: true - startupapicheck: - podAnnotations: - linkerd.io/inject: disabled - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.cert_manager.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} diff --git a/attic/templates/chartmuseum.yaml b/attic/templates/chartmuseum.yaml deleted file mode 100644 index 22a8bbfc..00000000 --- a/attic/templates/chartmuseum.yaml +++ /dev/null @@ -1,60 +0,0 @@ -{{- if .Values.chartmuseum.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: chartmuseum - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: argocd - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://chartmuseum.github.io/charts' - targetRevision: {{ .Values.chartmuseum.version }} - chart: chartmuseum - helm: - values: | - env: - open: - ENABLE_METRICS: true - DISABLE_API: false - ALLOW_OVERWRITE: false - CHART_URL: "" - AUTH_ANONYMOUS_GET: true - existingSecret: chartmuseum-basic-auth - existingSecretMappings: - BASIC_AUTH_USER: user - BASIC_AUTH_PASS: password - extraArgs: - - --web-template-path=/storage/web - serviceMonitor: - enabled: false - persistence: - enabled: true - accessMode: ReadWriteOnce - size: {{ .Values.chartmuseum.storage.size }} - path: /storage - storageClass: "" - ingress: - enabled: {{ .Values.chartmuseum.ingress.enabled }} - annotations: - {{- with .Values.cluster_config.ingress_whitelist_ips}} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - ingressClassName: nginx - hosts: - - name: charts.{{ .Values.cluster_config.domain }} - path: / - tls: true - tlsSecret: chartmuseum-tls - project: sys - {{- if .Values.chartmuseum.autosync }} - syncPolicy: - automated: - prune: true - # selfHeal: false - {{- end }} -{{- end }} diff --git a/attic/templates/clickhouse.yaml b/attic/templates/clickhouse.yaml deleted file mode 100644 index af8799cc..00000000 --- a/attic/templates/clickhouse.yaml +++ /dev/null @@ -1,45 +0,0 @@ -{{ if .Values.clickhouse_operator.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: clickhouse-operator - namespace: argocd -spec: - destination: - namespace: clickhouse - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/clickhouse - targetRevision: HEAD - - repoURL: 'https://docs.altinity.com/clickhouse-operator' - targetRevision: {{ .Values.clickhouse_operator.version }} - chart: altinity-clickhouse-operator - helm: - values: | - configs: - files: - config.yaml: - watch: - namespaces: ["analytics", "analytics-production"] - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - - ServerSideApply=true - {{- if .Values.clickhouse_operator.version }} - automated: - # selfHeal: false - prune: true - {{- end }} - ignoreDifferences: - - group: apps - kind: Deployment - jqPathExpressions: - - .spec.template.spec.containers[].env[].valueFrom.resourceFieldRef.divisor - - .spec.template.spec.initContainers[].env[].valueFrom.resourceFieldRef.divisor -{{ end }} diff --git a/attic/templates/dapr.yaml b/attic/templates/dapr.yaml deleted file mode 100644 index dc686c68..00000000 --- a/attic/templates/dapr.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{- if .Values.dapr.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: dapr - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: dapr-system - server: https://kubernetes.default.svc - project: default - syncPolicy: - # managedNamespaceMetadata: - # labels: - # component: aux - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - selfHeal: true - sources: - - repoURL: https://dapr.github.io/helm-charts/ - targetRevision: 1.14.4 - chart: dapr - helm: - values: | - global: - ha: - enabled: true -{{- end }} diff --git a/attic/templates/dex.yaml b/attic/templates/dex.yaml deleted file mode 100644 index fa8289e0..00000000 --- a/attic/templates/dex.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{ if .Values.dex.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prod-dex - namespace: argocd -spec: - project: aux - destination: - server: https://kubernetes.default.svc - namespace: dex - sources: - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: 'values/dex/prod' - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: values/dex/resources - - repoURL: https://charts.dexidp.io - targetRevision: 0.19.1 - chart: dex - helm: - valueFiles: - - $values/values/dex/values.yaml - - $values/values/dex/values-prod.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - ref: values -{{- end }} diff --git a/attic/templates/downscaler.yaml b/attic/templates/downscaler.yaml deleted file mode 100644 index 54910d53..00000000 --- a/attic/templates/downscaler.yaml +++ /dev/null @@ -1,47 +0,0 @@ -{{ if .Values.downscaler.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: downscaler - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: kube-downscaler - server: 'https://kubernetes.default.svc' - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.downscaler.autosync }} - automated: - prune: true - # selfHeal: true - {{- end }} - sources: - - repoURL: '{{ .Values.cluster_config.manifests }}' - path: {{ .Values.cluster_config.policies }}/downscaler - targetRevision: HEAD - - repoURL: 'https://caas-team.github.io/helm-charts/' - targetRevision: {{ .Values.downscaler.version }} - chart: py-kube-downscaler - helm: - values: | - arguments: - - --interval=60 - - --include-resources=deployments,statefulsets,scaledobjects,cronjobs - # Namespaces being excluded from the 'downscale for non-work hours' - # DEFAULT_UPTIME: "Mon-Fri 07:30-20:30 CET" - {{- with .Values.downscaler.excludedNamespaces }} - excludedNamespaces: {{ join "," . }} - {{- end }} - extraConfig: {{- toYaml .Values.downscaler.extraConfig | nindent 8 }} -{{ end }} - diff --git a/attic/templates/geoserver.yaml b/attic/templates/geoserver.yaml deleted file mode 100644 index f5c3b589..00000000 --- a/attic/templates/geoserver.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{ if .Values.geoserver.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prod-geoserver - namespace: argocd -spec: - project: aux - destination: - server: https://kubernetes.default.svc - namespace: geoserver - sources: - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: values/geoserver - plugin: - name: kustomize-helm-with-rewrite - parameters: - - name: env - string: prod - - name: hostname - string: geoserver.srv.oceanbox.io - - name: flags - string: "--skip-tests" - - name: chart - string: ncsa/geoserver -{{- end }} diff --git a/attic/templates/gitlab-runner.yaml b/attic/templates/gitlab-runner.yaml deleted file mode 100644 index b8e1ad9a..00000000 --- a/attic/templates/gitlab-runner.yaml +++ /dev/null @@ -1,78 +0,0 @@ -{{ if .Values.gitlab_runner.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: gitlab-runner - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: gitlab - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://charts.gitlab.io/' - targetRevision: {{ .Values.gitlab_runner.version }} - chart: gitlab-runner - helm: - releaseName: runner-gitlab-runner - values: | - gitlabUrl: https://gitlab.com/ - # certsSecretName: cluster-ca - # sentryDsn: https://cb9cbeb704c4454fadf0d231602b7abc@o990465.ingest.sentry.io/5996879 - - checkInterval: 15 - - rbac: - create: true - clusterWideAccess: true - - service: - enabled: true - - metrics: - enabled: true - serviceMonitor: - enabled: true - - runners: - tags: kubernetes, {{ .Values.gitlab_runner.tag }}, {{ .Values.cluster_config.cluster }}, {{ .Values.cluster_config.env}} - executor: kubernetes - cache: - secretName: s3access - secret: runner-token - - # tpl: https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-tpl-function - # runner configuration: https://docs.gitlab.com/runner/configuration/advanced-configurati> - config: | - [[runners]] - [runners.kubernetes] - pull_policy = "always" - namespace = "gitlab" - image = "ubuntu:24.04" - [runners.cache] - Path = "" - Shared = true - Type = "s3" - [runners.cache.s3] - BucketLocation = "us-east-1" - AuthenticationType = "access-key" - AccessKey = {{ .Values.gitlab_runner.s3.access_key }} - SecretKey = {{ .Values.gitlab_runner.s3.secret_key }} - ServerAddress = {{ .Values.gitlab_runner.s3.server }} - BucketName = "gitlab-runner" - Insecure = false - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.gitlab_runner.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{ end }} diff --git a/attic/templates/headscale.yaml b/attic/templates/headscale.yaml deleted file mode 100644 index f2392c5a..00000000 --- a/attic/templates/headscale.yaml +++ /dev/null @@ -1,23 +0,0 @@ -{{- if .Values.headscale.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: headscale - namespace: argocd -spec: - project: default - destination: - server: https://kubernetes.default.svc - namespace: headscale - sources: - - repoURL: https://charts.gabe565.com - targetRevision: 0.16.0 - chart: headscale - helm: - valueFiles: - - $values/values/headscale/values.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - ref: values - -{{- end }} diff --git a/attic/templates/ingress-nginx.yaml b/attic/templates/ingress-nginx.yaml deleted file mode 100644 index 0e37dfa2..00000000 --- a/attic/templates/ingress-nginx.yaml +++ /dev/null @@ -1,132 +0,0 @@ -{{- if .Values.nginx.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true -spec: - destination: - namespace: ingress-nginx - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/ingress-nginx - targetRevision: HEAD - - repoURL: 'https://kubernetes.github.io/ingress-nginx' - targetRevision: {{ .Values.nginx.version }} - chart: ingress-nginx - helm: - values: | - ## nginx configuration - ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/index.md - ## - ## Overrides for generated resource names - # See templates/_helpers.tpl - # nameOverride: - fullnameOverride: main-ingress-nginx - controller: - resources: - limits: - memory: {{ .Values.nginx.resources.controller.memory }} - requests: - cpu: {{ .Values.nginx.resources.controller.cpu }} - memory: {{ .Values.nginx.resources.controller.memory }} - - ingressClassResource: - default: true - - tolerations: - - key: unschedulable - operator: Exists - effect: NoSchedule - - key: node-role.kubernetes.io/control-plane - operator: Exists - effect: NoSchedule - - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: kubernetes.io/hostname - operator: In - values: {{ .Values.cluster_config.ingress_nodes }} - - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: app.kubernetes.io/instance - operator: In - values: - - ingress-nginx - - key: app.kubernetes.io/component - operator: In - values: - - controller - topologyKey: "kubernetes.io/hostname" - - podAnnotations: - config.linkerd.io/skip-inbound-ports: 80,443 - - replicaCount: {{ .Values.cluster_config.ingress_replica_count }} - - minAvailable: {{ .Values.nginx.pdb.minAvailable }} - - service: - externalTrafficPolicy: Local - # type: ClusterIP - type: NodePort - # nodePorts: - # http: 32080 - # https: 32443 - # tcp: - # 8080: 32808 - nodePorts: - http: 30080 - https: 30443 - tcp: {} - udp: {} - - metrics: - enabled: true - - service: - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "10254" - - servicePort: 9913 - type: ClusterIP - - serviceMonitor: - enabled: true - - admissionWebhooks: - enabled: false - - ## Default 404 backend - ## - defaultBackend: - enabled: true - - tolerations: - - key: unschedulable - operator: Exists - effect: NoSchedule - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.nginx.autosync}} - automated: - prune: true - # selfHeal: false - {{- end }} -{{- end }} diff --git a/attic/templates/jaeger-operator.yaml b/attic/templates/jaeger-operator.yaml deleted file mode 100644 index fd309841..00000000 --- a/attic/templates/jaeger-operator.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{ if .Values.jaeger_operator.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: jaeger-operator - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: observability - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/jaeger-operator - targetRevision: HEAD - - repoURL: "https://github.com/jaegertracing/jaeger-operator" - targetRevision: v{{ .Values.jaeger_operator.version }} - path: bundle/manifests - directory: - # Exclude jaeger-operator clusterserviceversion, as we don't have operator lifecycle manager installed - exclude: jaeger-operator.clusterserviceversion.yaml - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.jaeger_operator.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{ end }} diff --git a/attic/templates/keycloak.yaml b/attic/templates/keycloak.yaml deleted file mode 100644 index e3425eab..00000000 --- a/attic/templates/keycloak.yaml +++ /dev/null @@ -1,39 +0,0 @@ -{{ if .Values.keycloak.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prod-keycloak - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: aux - destination: - server: https://kubernetes.default.svc - namespace: keycloak - syncPolicy: - managedNamespaceMetadata: - labels: - component: aux - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - selfHeal: true - sources: - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: values/keycloak/prod - - repoURL: https://charts.bitnami.com/bitnami - targetRevision: 24.0.2 - chart: keycloak - helm: - valueFiles: - - $values/values/keycloak/values-prod.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - ref: values -{{- end }} diff --git a/attic/templates/kubernetes-dashboard.yaml b/attic/templates/kubernetes-dashboard.yaml deleted file mode 100644 index 1b2efa19..00000000 --- a/attic/templates/kubernetes-dashboard.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{{ if .Values.kubernetes_dashboard.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: kubernetes-dashboard - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: kubernetes-dashboard - server: 'https://kubernetes.default.svc' - source: - path: aio/deploy/recommended - repoURL: https://github.com/kubernetes/dashboard - targetRevision: {{ .Values.kubernetes_dashboard.version }} - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.kubernetes_dashboard.autosync }} - automated: - prune: true - # selfHeal: false - {{ end }} -{{ end }} diff --git a/attic/templates/kyverno.yaml b/attic/templates/kyverno.yaml deleted file mode 100644 index d9ff0aed..00000000 --- a/attic/templates/kyverno.yaml +++ /dev/null @@ -1,84 +0,0 @@ -{{ if .Values.kyverno.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: kyverno - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: kyverno - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/kyverno - targetRevision: HEAD - - repoURL: 'https://kyverno.github.io/kyverno/' - targetRevision: {{ .Values.kyverno.version }} - chart: kyverno - helm: - values: | - replicaCount: 3 - {{ if .Values.kyverno.metrics }} - admissionController: - serviceMonitor: - enabled: true - metricsService: - create: true - backgroundController: - serviceMonitor: - enabled: true - metricsService: - create: true - cleanupController: - serviceMonitor: - enabled: true - metricsService: - create: true - reportsController: - serviceMonitor: - enabled: true - metricsService: - create: true - {{ end }} - cleanupController: - resources: - limits: - memory: {{ .Values.kyverno.resources.cleanupController.memory }} - requests: - memory: {{ .Values.kyverno.resources.cleanupController.memory }} - reportsController: - resources: - limits: - memory: {{ .Values.kyverno.resources.reportsController.memory }} - requests: - memory: {{ .Values.kyverno.resources.reportsController.memory }} - backgroundController: - resources: - limits: - memory: {{ .Values.kyverno.resources.backgroundController.memory }} - requests: - memory: {{ .Values.kyverno.resources.backgroundController.memory }} - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - - ServerSideApply=true - {{- if .Values.kyverno.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} - ignoreDifferences: - - group: batch - kind: CronJob - jqPathExpressions: - - '.spec.jobTemplate.spec.template.spec.containers[]?.resources' -{{ end }} diff --git a/attic/templates/linkerd-crds.yaml b/attic/templates/linkerd-crds.yaml deleted file mode 100644 index 5bceb653..00000000 --- a/attic/templates/linkerd-crds.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{ if .Values.linkerd.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: linkerd-crds - namespace: argocd - #finalizers: - #- resources-finalizer.argocd.argoproj.io -spec: - ignoreDifferences: - - group: apiextensions.k8s.io - kind: CustomResourceDefinition - jsonPointers: - - /spec/names/shortNames - destination: - namespace: linkerd - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://helm.linkerd.io/stable' - targetRevision: {{ .Values.linkerd.crds.version }} - chart: linkerd-crds - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.linkerd.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{ end }} diff --git a/attic/templates/linkerd-multicluster.yaml b/attic/templates/linkerd-multicluster.yaml deleted file mode 100644 index c7ad1afc..00000000 --- a/attic/templates/linkerd-multicluster.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{ if .Values.linkerd.multicluster.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: linkerd-multicluster - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io - annotations: - # Should sync after linkerd (which is wave 0) - argocd.argoproj.io/sync-wave: "1" -spec: - destination: - namespace: linkerd-multicluster - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://helm.linkerd.io/stable' - targetRevision: {{ .Values.linkerd.multicluster.version }} - chart: linkerd-multicluster - helm: - values: | - gateway: - serviceType: "NodePort" - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - # selfHeal: false -{{ end }} diff --git a/attic/templates/linkerd.yaml b/attic/templates/linkerd.yaml deleted file mode 100644 index 0883b036..00000000 --- a/attic/templates/linkerd.yaml +++ /dev/null @@ -1,100 +0,0 @@ -{{ if .Values.linkerd.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: linkerd - namespace: argocd - annotations: - argocd.argoproj.io/sync-wave: "5" - #finalizers: - #- resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: linkerd - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/linkerd - targetRevision: HEAD - - repoURL: 'https://helm.linkerd.io/stable' - targetRevision: {{ .Values.linkerd.version }} - chart: linkerd-control-plane - helm: - values: | - identityTrustAnchorsPEM: {{- .Values.linkerd.trustAnchorPEM | toYaml | indent 7 }} - identity: - issuer: - scheme: {{ .Values.linkerd.secretScheme }} - {{- if .Values.linkerd.identityIssuerPEM }} - tls: - crtPEM: {{- .Values.linkerd.identityIssuerPEM | toYaml | indent 14 }} - {{- end }} - policyValidator: - externalSecret: true - caBundle: {{- .Values.linkerd.webhookPEM | toYaml | indent 9 }} - proxyInjector: - externalSecret: true - caBundle: {{- .Values.linkerd.webhookPEM | toYaml | indent 9 }} - profileValidator: - externalSecret: true - caBundle: {{- .Values.linkerd.webhookPEM | toYaml | indent 9 }} - - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.linkerd.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} - ignoreDifferences: - - group: batch - kind: CronJob - jsonPointers: - - /spec/schedule - - kind: Secret - name: linkerd-proxy-injector-k8s-tls - jsonPointers: - - /data/tls.crt - - /data/tls.key - - kind: Secret - name: linkerd-sp-validator-k8s-tls - jsonPointers: - - /data/tls.crt - - /data/tls.key - - kind: Secret - name: linkerd-tap-k8s-tls - jsonPointers: - - /data/tls.crt - - /data/tls.key - - kind: Secret - name: linkerd-policy-validator-k8s-tls - jsonPointers: - - /data/tls.crt - - /data/tls.key - - group: admissionregistration.k8s.io - kind: MutatingWebhookConfiguration - name: linkerd-proxy-injector-webhook-config - jqPathExpressions: - - '.webhooks[0].clientConfig.caBundle' - - group: admissionregistration.k8s.io - kind: ValidatingWebhookConfiguration - name: linkerd-sp-validator-webhook-config - jqPathExpressions: - - '.webhooks[0].clientConfig.caBundle' - - group: admissionregistration.k8s.io - kind: ValidatingWebhookConfiguration - name: linkerd-policy-validator-webhook-config - jqPathExpressions: - - '.webhooks[0].clientConfig.caBundle' - - group: apiregistration.k8s.io/v1 - kind: APIService - name: v1alpha1.tap.linkerd.io - jsonPointers: - - /spec/caBundle -{{ end }} diff --git a/attic/templates/loki.yaml b/attic/templates/loki.yaml deleted file mode 100644 index d11ad705..00000000 --- a/attic/templates/loki.yaml +++ /dev/null @@ -1,145 +0,0 @@ -{{ if .Values.loki.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: loki - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: loki - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/loki - targetRevision: HEAD - - repoURL: 'https://grafana.github.io/helm-charts' - targetRevision: {{ .Values.loki.version }} - chart: loki - helm: - values: | - loki: - auth_enabled: false - storage: - bucketNames: - chunks: {{ .Values.loki.buckets.chunks }} - ruler: {{ .Values.loki.buckets.ruler }} - admin: {{ .Values.loki.buckets.admin }} - s3: - endpoint: {{ .Values.loki.s3.endpoint | default "https://s3.production.itpartner.no" }} - region: {{ .Values.loki.s3.region | default "us-east-1" }} - secretAccessKey: ${S3SECRET} - accessKeyId: ${S3KEY} - s3ForcePathStyle: true - {{- if .Values.loki.s3.insecure_skip_verify }} - http_config: - insecure_skip_verify: true - {{- end }} - schemaConfig: - configs: - - from: "2022-09-28" - index: - period: 24h - prefix: loki_index_ - object_store: s3 - schema: v13 - store: tsdb - {{- if .Values.loki.compactor }} - compactor: - compaction_interval: 10m - working_directory: /tmp/loki/compactor - retention_enabled: true - retention_delete_delay: 2h - retention_delete_worker_count: 150 - delete_request_store: s3 - {{- end }} - write: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_key" }} - - name: S3SECRET - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_secret" }} - tolerations: - - effect: "NoSchedule" - operator: "Equal" - key: "unschedulable" - value: "true" - read: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_key" }} - - name: S3SECRET - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_secret" }} - tolerations: - - effect: "NoSchedule" - operator: "Equal" - key: "unschedulable" - value: "true" - {{- if .Values.loki.compactor }} - compactor: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_key" }} - - name: S3SECRET - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_secret" }} - {{- end }} - backend: - extraArgs: - - -config.expand-env=true - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_key" }} - - name: S3SECRET - valueFrom: - secretKeyRef: - name: {{ .Values.loki.secret.name | default "s3-credentials"}} - key: {{ .Values.loki.secret.access_key | default "access_secret" }} - project: sys - ignoreDifferences: - - group: apps - kind: StatefulSet - jsonPointers: - - /spec/persistentVolumeClaimRetentionPolicy - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.loki.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{ end }} diff --git a/attic/templates/mariadb-operator.yaml b/attic/templates/mariadb-operator.yaml deleted file mode 100644 index a91f4a83..00000000 --- a/attic/templates/mariadb-operator.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.mariadb_operator.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: mariadb-operator - namespace: argocd - annotations: - argocd.argoproj.io/sync-wave: "-1" -spec: - destination: - namespace: mariadb-operator - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/mariadb-operator - targetRevision: HEAD - - repoURL: 'https://helm.mariadb.com/mariadb-operator' - targetRevision: {{ .Values.mariadb_operator.version }} - chart: mariadb-operator - helm: - values: | - ha: - enabled: false - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: prometheus - enabled: true - webhook: - certificate: - certManager: false - serviceMonitor: - additionalLabels: - release: prometehus - project: sys - syncPolicy: - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - {{- if .Values.mariadb_operator.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{- end }} diff --git a/attic/templates/metricserver.yaml b/attic/templates/metricserver.yaml deleted file mode 100644 index 6c8e55e5..00000000 --- a/attic/templates/metricserver.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: kube-system - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://kubernetes-sigs.github.io/metrics-server/' - targetRevision: {{ .Values.metrics_server.version }} - chart: metrics-server - helm: - values: | - containerPort: 10250 - resources: - requests: - cpu: 100m - memory: 200Mi - {{- if .Values.metrics_server.ignoreTLS }} - args: - - "--kubelet-insecure-tls" - {{- end }} - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.metrics_server.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} diff --git a/attic/templates/nfs-provisioner.yaml b/attic/templates/nfs-provisioner.yaml deleted file mode 100644 index 7866b236..00000000 --- a/attic/templates/nfs-provisioner.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.nfs_provisioner.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: nfs-provisioner - namespace: argocd -spec: - destination: - namespace: kube-system - server: 'https://kubernetes.default.svc' - source: - #- repoURL: {{ .Values.cluster_config.manifests }} - # path: {{ .Values.cluster_config.policies }}/nfs-provisioner - # targetRevision: HEAD - repoURL: 'https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/' - targetRevision: {{ .Values.nfs_provisioner.version }} - chart: nfs-subdir-external-provisioner - helm: - values: | - nfs: - server: {{ .Values.cluster_config.fileserver }} - path: /{{ default (.Values.cluster_config.cluster) .Values.nfs_provisioner.path }} - mountOptions: - - nfsvers=4.2 - {{- range .Values.nfs_provisioner.extraMountOpts }} - - {{ . }} - {{- end }} - storageClass: - defaultClass: {{ .Values.nfs_provisioner.defaultClass}} - name: managed-nfs-storage - archiveOnDelete: {{ .Values.nfs_provisioner.archiveOnDelete }} - tolerations: - - key: unschedulable - operator: Exists - effect: NoSchedule - project: sys - syncPolicy: - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.nfs_provisioner.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{- end }} diff --git a/attic/templates/oncall.yaml b/attic/templates/oncall.yaml deleted file mode 100644 index 8b7f3287..00000000 --- a/attic/templates/oncall.yaml +++ /dev/null @@ -1,104 +0,0 @@ -{{ if .Values.oncall.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: oncall - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: prometheus - server: 'https://kubernetes.default.svc' - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{ if .Values.oncall.autosync }} - automated: - prune: true - # selfHeal: false - {{ end }} - sources: -# - repoURL: {{ .Values.cluster_config.manifests }} -# path: {{ .Values.cluster_config.policies }}/oncall -# targetRevision: HEAD - - repoURL: 'https://grafana.github.io/helm-charts' - targetRevision: '{{ .Values.oncall.version }}' - chart: oncall - helm: - values: | - base_url: oncall.{{ .Values.cluster_config.domain }} - base_url_protocol: https - image: - repository: grafana/oncall - pullPolicy: IfNotPresent - ingress-nginx: - enabled: false - cert-manager: - enabled: false - installCRDs: false - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/ssl-redirect: "true" - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - path: / - pathType: Prefix - hosts: - - oncall.{{ .Values.cluster_config.domain }} - tls: - - secretName: oncall-tls - hosts: - - oncall.{{ .Values.cluster_config.domain }} - - {{- if .Values.oncall.slack }} - oncall: - slack: - enabled: true - clientId: {{ .Values.oncall.slack.clientId }} - clientSecret: {{ .Values.oncall.slack.clientSecret }} - signingSecret: {{ .Values.oncall.slack.signingSecret }} - redirectHost: https://oncall.{{ .Values.cluster_config.domain }} - {{- end }} - - {{- if .Values.oncall.smtp }} - oncall: - smtp: - enabled: true - host: {{ .Values.oncall.smtp.host }} - port: {{ .Values.oncall.smtp.port }} - username: {{ .Values.oncall.smtp.username }} - password: {{ .Values.oncall.smtp.password }} - tls: {{ .Values.oncall.smtp.tls }} - fromEmail: {{ .Values.oncall.smtp.fromEmail }} - {{- end }} - database: - type: postgresql - postgresql: - enabled: true - auth: - database: oncall - mariadb: - enabled: false - redis: - enabled: true - broker: - type: rabbitmq - rabbitmq: - enabled: true - grafana: - enabled: false - externalGrafana: - url: {{ .Values.oncall.externalGrafana.url }} -{{- end }} diff --git a/attic/templates/openfga.yaml b/attic/templates/openfga.yaml deleted file mode 100644 index 7c83f346..00000000 --- a/attic/templates/openfga.yaml +++ /dev/null @@ -1,43 +0,0 @@ -{{ if .Values.openfga.enabled }} -{{- range .Values.atlantis.envs }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prod-openfga - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: openfga - server: https://kubernetes.default.svc - project: aux - # ignoreDifferences: - # - group: apps - # kind: StatefulSet - # jsonPointers: - # - /spec/persistentVolumeClaimRetentionPolicy - syncPolicy: - managedNamespaceMetadata: - labels: - component: aux - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - selfHeal: true - sources: - - repoURL: https://openfga.github.io/helm-charts - targetRevision: 0.2.21 - chart: openfga - helm: - valueFiles: - - $values/values/openfga/values-prod.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - ref: values -{{- end }} -{{- end }} diff --git a/attic/templates/osm-tile-server.yaml b/attic/templates/osm-tile-server.yaml deleted file mode 100644 index c5a4753c..00000000 --- a/attic/templates/osm-tile-server.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{- if .Values.osm-tile-server.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: ApplicationSet -metadata: - name: osm-tile-server - namespace: argocd -spec: - generators: - - list: - elements: - - cluster: https://kubernetes.default.svc - env: prod - hostname: osm.srv.oceanbox.io - - cluster: https://staging-vcluster.staging-vcluster - env: staging - hostname: osm.beta.oceanbox.io - template: - metadata: - name: '{{- env }}-osm-tile-server' - spec: - project: aux - destination: - namespace: oceanbox - server: '{{- cluster }}' - source: - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: HEAD - path: values/osm-tile-server - plugin: - name: kustomize-helm-with-rewrite - parameters: - - name: env - string: '{{- env }}' - - name: hostname - string: '{{- hostname }}' -{{- end }} diff --git a/attic/templates/otel-collector.yaml b/attic/templates/otel-collector.yaml deleted file mode 100644 index a3279bc8..00000000 --- a/attic/templates/otel-collector.yaml +++ /dev/null @@ -1,117 +0,0 @@ -{{ if .Values.otel.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: opentelemetry-collector - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: otel - server: 'https://kubernetes.default.svc' - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.otel.autosync }} - automated: - prune: true - # selfHeal: true - {{- end }} - sources: - - repoURL: '{{ .Values.cluster_config.manifests }}' - path: {{ .Values.cluster_config.policies }}/otel - targetRevision: HEAD - - repoURL: 'https://open-telemetry.github.io/opentelemetry-helm-charts' - targetRevision: {{ .Values.otel.version }} - chart: opentelemetry-collector - helm: - values: | - mode: deployment - image: - repository: otel/opentelemetry-collector-k8s - config: - receivers: - prometheus/collector: - config: - scrape_configs: - - job_name: 'opentelemetry-collector' - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - exporters: - otlp: - endpoint: "tempo.tempo.svc:4317" - tls: - insecure: true - ## - otlphttp/metrics: - endpoint: http://prom-prometheus.prometheus:9090/api/v1/otlp - tls: - insecure: true - otlphttp/logs: - endpoint: http://loki-write-headless.loki:3100/otlp - tls: - insecure: true - ## Detailed? make toggleable with values - debug/metrics: - verbosity: detailed - debug/traces: - verbosity: detailed - debug/logs: - verbosity: detailed - service: - telemetry: - logs: - level: "info" - pipelines: - traces: - receivers: [otlp,zipkin] - processors: [batch] - exporters: [otlp] - # exporters: [otlphttp/traces,debug/traces] - metrics: - receivers: [otlp,prometheus/collector] - processors: [batch] - exporters: [otlphttp/metrics] - # exporters: [otlphttp/metrics,debug/metrics] - logs: - receivers: [otlp] - processors: [batch] - exporters: [otlphttp/logs] - # exporters: [otlphttp/logs,debug/logs] - ports: - metrics: - enabled: true - # presets: - # logsCollection: - # enabled: true - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/ssl-redirect: "true" - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - hosts: - - host: opentelemetry-collector.{{ .Values.cluster_config.domain }} - paths: - - path: / - pathType: Prefix - port: 4318 - tls: - - secretName: collector-tls - hosts: - - opentelemetry-collector.{{ .Values.cluster_config.domain }} -{{ end }} diff --git a/attic/templates/plausible.yaml b/attic/templates/plausible.yaml deleted file mode 100644 index 1a10dcba..00000000 --- a/attic/templates/plausible.yaml +++ /dev/null @@ -1,75 +0,0 @@ -{{- if .Values.plausible.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: plausible-analytics - namespace: argocd -spec: - destination: - namespace: plausible - server: 'https://kubernetes.default.svc' - sources: - - repoURL: 'https://imio.github.io/helm-charts' - targetRevision: 0.4.0 - chart: plausible-analytics - helm: - values: | - baseURL: https://plausible.adm.oceanbox.io - databaseURL: postgres://app:password@plausible-db-rw:5432/app - clickhouse: - resources: - requests: - cpu: 500m - ephemeral-storage: 50Mi - memory: 512Mi - postgresql: - enabled: false - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24,148.122.135.23 - hosts: - - plausible.adm.oceanbox.io - paths: - - / - pathType: ImplementationSpecific - tls: - - secretName: plausible-tls - hosts: - - plausible.adm.oceanbox.io - project: aux - syncPolicy: - managedNamespaceMetadata: - labels: - component: aux - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - automated: - prune: true - selfHeal: true - ignoreDifferences: - - kind: Secret - name: plausible-analytics - jqPathExpressions: - - '.data' - - '.metadata.labels' - - '.metadata.annotations' ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Cluster -metadata: - name: plausible-db - namespace: plausible -spec: - imageName: ghcr.io/cloudnative-pg/postgresql:16.3 - primaryUpdateStrategy: unsupervised - instances: 1 - monitoring: - enablePodMonitor: true - storage: - size: 10Gi -{{- end }} diff --git a/attic/templates/policies/cnpg-add-backup-section.yaml b/attic/templates/policies/cnpg-add-backup-section.yaml deleted file mode 100644 index cf9efe69..00000000 --- a/attic/templates/policies/cnpg-add-backup-section.yaml +++ /dev/null @@ -1,52 +0,0 @@ -{{- if and (.Values.kyverno.enabled) (.Values.postgres_operator.enabled) (.Values.velero.enabled) }} -apiVersion : kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: cnpg-add-backup-section - annotations: - policies.kyverno.io/title: add backup section to cnpg cluster spec - policies.kyverno.io/category: Other - policies.kyverno.io/severity: medium - kyverno.io/kyverno-version: 1.6.0 - policies.kyverno.io/minversion: 1.6.0 - kyverno.io/kubernetes-version: "1.23" - policies.kyverno.io/subject: Cluster - policies.kyverno.io/description: >- - When a CNPG cluster is created, a backup section should be added. - The user can then create their own backup or backup schedule. -spec: - background: false - rules: - - name: cnpg-add-backup-section - match: - any: - - resources: - kinds: - - Cluster - exclude: - any: - - resources: - kinds: - - Cluster - names: - - "review-*" - mutate: - patchStrategicMerge: - spec: - backup: - barmanObjectStore: - destinationPath: s3://{{ .Values.velero.bucket }}/{{ .Values.cluster_config.cluster }}/cnpg-backup - serverName: {{` "{{ request.object.metadata.name }}"`}} - endpointURL: https://s3.production.itpartner.no - s3Credentials: - accessKeyId: - key: access_key - name: s3-credentials - inheritFromIAMRole: false - secretAccessKey: - key: access_secret - name: s3-credentials - wal: - compression: snappy -{{- end }} - diff --git a/attic/templates/policies/cnpg-clone-secrets.yaml b/attic/templates/policies/cnpg-clone-secrets.yaml deleted file mode 100644 index 89176fcd..00000000 --- a/attic/templates/policies/cnpg-clone-secrets.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{- if and (.Values.kyverno.enabled) (.Values.postgres_operator.enabled) (.Values.velero.enabled) }} -apiVersion : kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: cnpg-clone-s3-credentials - annotations: - policies.kyverno.io/title: add backup section to cnpg cluster spec - policies.kyverno.io/category: Other - policies.kyverno.io/severity: medium - kyverno.io/kyverno-version: 1.6.0 - policies.kyverno.io/minversion: 1.6.0 - kyverno.io/kubernetes-version: "1.23" - policies.kyverno.io/subject: Cluster - policies.kyverno.io/description: >- - When a CNPG cluster is created, s3 credentials and CA secrets - should be synced from the velero namespace -spec: - background: false - rules: - - name: clone-s3-credentials - match: - any: - - resources: - kinds: - - Cluster - generate: - apiVersion: v1 - kind: Secret - name: s3-credentials - namespace: {{` "{{request.object.metadata.namespace}}" `}} - synchronize: true - clone: - namespace: velero - name: s3-credentials -{{- end }} - diff --git a/attic/templates/policies/generate-external-admin-rolebinding.yaml b/attic/templates/policies/generate-external-admin-rolebinding.yaml deleted file mode 100644 index 347ad848..00000000 --- a/attic/templates/policies/generate-external-admin-rolebinding.yaml +++ /dev/null @@ -1,55 +0,0 @@ -{{- if and (.Values.cluster_config.external_kubectl_access.enabled) (.Values.kyverno.enabled) }} -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: generate-external-admin-rolebinding - annotations: - policies.kyverno.io/title: Generate cluster-Admin rolebinding customer namespaces - policies.kyverno.io/category: other - policies.kyverno.io/severity: medium - policies.kyverno.io/subject: Namespace, RoleBinding - kyverno.io/kyverno-version: 1.7.0 - policies.kyverno.io/minversion: 1.7.0 - kyverno.io/kubernetes-version: "1.23" - policies.kyverno.io/description: >- - Customers should not have full admin permissions on their own namespaces. - This policy will generate a RoleBinding, binding their group_id to - the Cluster-Admin clusterrole. This will still only apply to the namespace as - the resource is a rolebinding, not clusterrolebinding. - This policy should not trigger on any namespaces with label component=sys -spec: - generateExistingOnPolicyUpdate: true - rules: - - name: generate-rolebinding - match: - any: - - resources: - kinds: - - Namespace - exclude: - any: - - resources: - kinds: - - Namespace - selector: - matchLabels: - component: sys - generate: - apiVersion: rbac.authorization.k8s.io/v1 - kind: RoleBinding - name: external-ns-admin - namespace: {{` "{{request.object.metadata.name}}" `}} - synchronize: true - data: - metadata: - labels: - created-by: kyverno - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin - subjects: - - apiGroup: rbac.authorization.k8s.io - kind: Group - name: {{ .Values.cluster_config.external_kubectl_access.admin_group }} -{{- end }} diff --git a/attic/templates/policies/prometheus-add-folder-to-default-dashboards.yaml b/attic/templates/policies/prometheus-add-folder-to-default-dashboards.yaml deleted file mode 100644 index c2be4190..00000000 --- a/attic/templates/policies/prometheus-add-folder-to-default-dashboards.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if and (.Values.kyverno.enabled) (.Values.prometheus.enabled) }} -apiVersion: kyverno.io/v1 -kind: Policy -metadata: - name: prometheus-stack-default-dashboard-folder - namespace: prometheus -spec: - admission: true - background: true - mutateExistingOnPolicyUpdate: true - rules: - - match: - any: - - resources: - kinds: - - ConfigMap - selector: - matchLabels: - app.kubernetes.io/part-of: kube-prometheus-stack - mutate: - patchStrategicMerge: - metadata: - annotations: - grafana_folder: Prometheus-stack - targets: - - apiVersion: v1 - kind: ConfigMap - name: "{{`{{ request.object.metadata.name }}`}}" - name: generate-dashboard-folder-annotation - skipBackgroundRequests: true - validationFailureAction: Audit -{{- end }} diff --git a/attic/templates/policies/sync-gitlab.yaml b/attic/templates/policies/sync-gitlab.yaml deleted file mode 100644 index 35f7304f..00000000 --- a/attic/templates/policies/sync-gitlab.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: sync-gitlab-secret - annotations: - policies.kyverno.io/title: Sync Secrets - policies.kyverno.io/category: Sample - policies.kyverno.io/subject: Secret - policies.kyverno.io/description: >- - Secrets like registry credentials often need to exist in multiple - Namespaces so Pods there have access. Manually duplicating those Secrets - is time consuming and error prone. This policy will copy a - Secret called `regcred` which exists in the `default` Namespace to - new Namespaces when they are created. It will also push updates to - the copied Secrets should the source Secret be changed. -spec: - rules: - - name: sync-image-pull-secret - match: - resources: - kinds: - - Namespace - generate: - apiVersion: v1 - kind: Secret - name: regcred - namespace: "{{`{{request.object.metadata.name}}`}}" - synchronize: true - clone: - namespace: default - name: gitlab-pull-secret diff --git a/attic/templates/policies/sync-regcred.yaml b/attic/templates/policies/sync-regcred.yaml deleted file mode 100644 index 759f0365..00000000 --- a/attic/templates/policies/sync-regcred.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- if .Values.kyverno.enabled }} -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: sync-regcred-secret - annotations: - policies.kyverno.io/title: Sync Secrets - policies.kyverno.io/category: Sample - policies.kyverno.io/subject: Secret - policies.kyverno.io/description: >- - Secrets like registry credentials often need to exist in multiple - Namespaces so Pods there have access. Manually duplicating those Secrets - is time consuming and error prone. This policy will copy a - Secret called `regcred` which exists in the `default` Namespace to - new Namespaces when they are created. It will also push updates to - the copied Secrets should the source Secret be changed. -spec: - rules: - - name: sync-image-pull-secret - match: - resources: - kinds: - - Namespace - generate: - apiVersion: v1 - kind: Secret - name: regcred - namespace: "{{`{{request.object.metadata.name}}`}}" - synchronize: true - clone: - namespace: default - name: regcred -{{- end }} diff --git a/attic/templates/policies/sync-s3-secret.yaml b/attic/templates/policies/sync-s3-secret.yaml deleted file mode 100644 index b1f1ea03..00000000 --- a/attic/templates/policies/sync-s3-secret.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- if .Values.kyverno.enabled }} -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - annotations: - policies.kyverno.io/description: 'This policy will sync the s3 secret in kube-system namespace across namespaces' - policies.kyverno.io/subject: Secret - policies.kyverno.io/title: Sync s3 Secrets - name: sync-s3-credentials -spec: - generateExistingOnPolicyUpdate: true - background: true - rules: - - generate: - apiVersion: v1 - clone: - name: s3-credentials - namespace: kube-system - kind: Secret - name: s3-credentials - namespace: '{{`{{request.object.metadata.name}}`}}' - synchronize: true - match: - resources: - kinds: - - Namespace - names: - - "velero" - - "loki" - - "tempo" - name: sync-s3-secret - validationFailureAction: audit -{{- end }} diff --git a/attic/templates/policies/whitelist-internal-ingresses.yaml b/attic/templates/policies/whitelist-internal-ingresses.yaml deleted file mode 100644 index f9a687f9..00000000 --- a/attic/templates/policies/whitelist-internal-ingresses.yaml +++ /dev/null @@ -1,73 +0,0 @@ -{{- if .Values.kyverno.enabled }} -apiVersion: kyverno.io/v1 -kind: ClusterPolicy -metadata: - name: whitelist-internal-ingresses - annotations: - policies.kyverno.io/title: Concatenate Ingresss - policies.kyverno.io/category: Other - policies.kyverno.io/severity: medium - policies.kyverno.io/subject: Ingress - policies.kyverno.io/description: >- - Ingresses with the label "internal=true" should be whitelisted. - If no whitelist exists, add the default values, otherwise append - whitelist to the already existing ones -spec: - mutateExistingOnPolicyUpdate: false - #precondition: has whitelist annotation or - rules: - - name: ensure-nginx-whitelist-exists - match: - resources: - kinds: - - Ingress - selector: - matchLabels: - internal: "true" - mutate: - patchStrategicMerge: - metadata: - annotations: - +(nginx.ingress.kubernetes.io/whitelist-source-range): "" - - name: append-existing-whitelist - match: - resources: - kinds: - - Ingress - selector: - matchLabels: - internal: "true" - preconditions: - any: - - key: "{{`{{request.object.metadata.annotations.\"nginx.ingress.kubernetes.io/whitelist-source-range\"}}`}}" - operator: NotEquals - value: "" - mutate: - patchStrategicMerge: - metadata: - annotations: - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: "{{`{{ @ }}`}},{{ join "," . }}" - {{- end }} - - name: add-nginx-whitelist - match: - resources: - kinds: - - Ingress - selector: - matchLabels: - internal: "true" - preconditions: - any: - - key: "{{`{{request.object.metadata.annotations.\"nginx.ingress.kubernetes.io/whitelist-source-range\"}}`}}" - operator: Equals - value: "" - mutate: - patchStrategicMerge: - metadata: - annotations: - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: "{{ join "," . }}" - {{- end }} -{{- end }} - diff --git a/attic/templates/postgres-operator.yaml b/attic/templates/postgres-operator.yaml deleted file mode 100644 index 9abdd60d..00000000 --- a/attic/templates/postgres-operator.yaml +++ /dev/null @@ -1,39 +0,0 @@ -{{ if .Values.postgres_operator.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: postgres-operator - namespace: argocd -spec: - destination: - namespace: cnpg - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/cnpg - targetRevision: HEAD - - repoURL: 'https://cloudnative-pg.github.io/charts' - targetRevision: {{ .Values.postgres_operator.version }} - chart: cloudnative-pg - helm: - values: | - additionalArgs: [] - config: - data: - INHERITED_ANNOTATIONS: "linkerd.io/*" - INHERITED_LABELS: "velero.io/*" - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - - ServerSideApply=true - {{- if .Values.postgres_operator.version }} - automated: - # selfHeal: false - prune: true - {{- end }} -{{ end }} diff --git a/attic/templates/prometheus-thanos.yaml b/attic/templates/prometheus-thanos.yaml deleted file mode 100644 index b1b4f3f6..00000000 --- a/attic/templates/prometheus-thanos.yaml +++ /dev/null @@ -1,342 +0,0 @@ -{{ if .Values.thanos.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: thanos - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: thanos - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://charts.bitnami.com/bitnami' - targetRevision: {{ .Values.thanos.version }} - chart: thanos - helm: - values: | - ## Handled by sealed secret now, and uses minio root user - #objstoreConfig: |- - # type: s3 - # config: - # bucket: thanos - # endpoint: thanos-minio.thanos.svc.cluster.local:9000 - # access_key: "thanos" - # secret_key: "en to tre fire" - # insecure: true - - ## @param indexCacheConfig The [index cache configuration](https://thanos.io/components/store.md/) - ## Specify content for index-cache.yml - indexCacheConfig: "" - ## @param bucketCacheConfig The [bucket cache configuration](https://thanos.io/components/store.md/) - ## Specify content for bucket-cache.yml - ## - bucketCacheConfig: "" - ## @param existingObjstoreSecret Secret with Objstore Configuration - ## Note: This will override objstoreConfig - ## - existingObjstoreSecret: "thanos-objstore-secret" - existingObjstoreSecretItems: [] - existingServiceAccount: "" - - query: - enabled: true - stores: - - {{ .Values.prometheus.fullname | default "prometheus-kube-prometheus" }}-prometheus.prometheus.svc:10901 - - thanos-envoy:10000 - - thanos-envoy:10002 - - thanos-envoy:11000 - ingress: - enabled: true - certManager: false - hostname: thanos.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos.{{ .Values.cluster_config.domain }} - secretName: thanos-tls - - ## @section Thanos Query Frontend parameters - - queryFrontend: - enabled: true - ingress: - enabled: true - certManager: false - hostname: thanos-query.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos-query.{{ .Values.cluster_config.domain }} - secretName: thanos-query-tls - - ## @section Thanos Bucket Web parameters - - bucketweb: - enabled: true - ingress: - enabled: true - certManager: false - hostname: thanos-bucketweb.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos-bucketweb.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos-bucketweb.{{ .Values.cluster_config.domain }} - secretName: thanos-bucketweb-tls - - ## @section Thanos Compactor parameters - - compactor: - enabled: true - ingress: - enabled: true - certManager: false - hostname: thanos-compactor.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos-compactor.{{ .Values.cluster_config.domain }} - secretName: thanos-compactor-tls - persistence: - enabled: true - storageClass: "local-storage" - accessModes: - - ReadWriteOnce - size: 8Gi - - ## @section Thanos Store Gateway parameters - - storegateway: - enabled: true - - ingress: - enabled: true - certManager: false - hostname: thanos-storage.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos-storage.{{ .Values.cluster_config.domain }} - secretName: thanos-storage-tls - persistence: - enabled: true - storageClass: "local-storage" - accessModes: - - ReadWriteOnce - size: 8Gi - - ## @section Thanos Ruler parameters - - ruler: - enabled: true - alertmanagers: - - https://alertmanager.k1.itpartner.no - - https://alertmanager.k2.itpartner.no - - https://alertmanager.k0.itpartner.no - config: |- - groups: - - name: "metamonitoring" - rules: - - alert: "PrometheusDown" - expr: absent(up{container="prometheus",job="prometheus-kube-prometheus-prometheus",namespace="prometheus"}) - global: - resolve_timeout: 5m - route: - receiver: pagerduty - group_by: - - alertname - routes: - - receiver: snitch - match: - alertname: Watchdog - group_wait: 0s - group_interval: 1m - repeat_interval: 50s - group_wait: 60s - group_interval: 15m - repeat_interval: 24h - receivers: - - name: pagerduty - pagerduty_configs: - - routing_key: e67f3a24f11c450ad060128f20ffa5d1 - url: https://events.pagerduty.com/v2/enqueue - - ingress: - enabled: true - certManager: false - hostname: thanos-ruler.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos-ruler.{{ .Values.cluster_config.domain }} - secretName: thanos-ruler-tls - persistence: - enabled: true - storageClass: "local-storage" - accessModes: - - ReadWriteOnce - size: 8Gi - - ## @section Thanos Receive parameters - - receive: - enabled: false - mode: standalone - replicationFactor: 1 - replicaLabel: replica - tsdbRetention: 15d - config: - - endpoints: - - "127.0.0.1:10901" - ingress: - enabled: true - certManager: false - hostname: thanos-receive.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos-receive.{{ .Values.cluster_config.domain }} - secretName: thanos-receive-tls - persistence: - enabled: true - storageClass: "local-storage" - accessModes: - - ReadWriteOnce - size: 8Gi - - ## @section Metrics parameters - - metrics: - enabled: true - serviceMonitor: - enabled: true - - ## @section MinIO® chart parameters - - minio: - enabled: true - accessKey: - password: "thanos" - secretKey: - password: "en to tre fire" - defaultBuckets: thanos - ingress: - enabled: true - certManager: false - hostname: thanos-minio.{{ .Values.cluster_config.domain }} - ingressClassName: "nginx" - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/proxy-body-size: 1024m - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,172.19.255.0/24 - ## extraHosts: - ## - name: thanos.local - ## path: / - ## pathType: ImplementationSpecific - ## - extraHosts: [] - extraTls: - - hosts: - - thanos-minio.{{ .Values.cluster_config.domain }} - secretName: thanos-minio-tls - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.prometheus.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{ end }} diff --git a/attic/templates/prometheus.yaml b/attic/templates/prometheus.yaml deleted file mode 100644 index 3b4ad8d7..00000000 --- a/attic/templates/prometheus.yaml +++ /dev/null @@ -1,625 +0,0 @@ -{{- if .Values.prometheus.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prometheus - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: prometheus - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/prometheus - targetRevision: HEAD - - repoURL: 'https://prometheus-community.github.io/helm-charts' - targetRevision: '{{ .Values.prometheus.version }}' - chart: kube-prometheus-stack - helm: - skipCrds: true - values: | - crds: - enabled: false - - fullnameOverride: {{ .Values.prometheus.fullname | default "prometheus-kube-prometheus" }} - - {{- with .Values.prometheus.defaultRules }} - defaultRules: - {{- . | toYaml | nindent 10 }} - {{- end}} - - ## Configuration for alertmanager - ## ref: https://prometheus.io/docs/alerting/alertmanager/ - ## - alertmanager: - config: - route: - {{- if .Values.prometheus.alert_group_by }} - group_by: - {{- range .Values.prometheus.alert_group_by }} - - {{ . | quote }} - {{- end }} - {{- else }} - group_by: ["alertname"] - {{- end }} - group_wait: 60s - group_interval: 15m - repeat_interval: 24h - receiver: {{ .Values.prometheus.alert_receiver | default "pagerduty" }} - routes: - - match: - alertname: Watchdog - group_wait: 0s - group_interval: 1m - repeat_interval: 50s - receiver: snitch - {{- if .Values.prometheus.oncallUrl}} - - match: - alertname: .* - receiver: oncall - continue: true - {{- end }} - receivers: - - name: pagerduty - pagerduty_configs: - - routing_key: {{ default "key" .Values.prometheus.pagerdutyRoutingKey }} - url: "https://events.pagerduty.com/v2/enqueue" - severity: {{`'{{ if .CommonLabels.severity }}{{ .CommonLabels.severity | toLower }}{{ else }}critical{{ end }}'`}} - {{- if .Values.prometheus.snitchUrl}} - - name: snitch - webhook_configs: - - url: "{{ .Values.prometheus.snitchUrl }}" - send_resolved: false - {{- end }} - - name: teams - webhook_configs: - - url: "https://prometheus-msteams.{{ .Values.cluster_config.domain }}/{{ .Values.cluster_config.cluster }}" - http_config: - tls_config: - insecure_skip_verify: true - {{- if .Values.prometheus.oncallUrl}} - - name: oncall - webhook_configs: - - url: "{{ .Values.prometheus.oncallUrl }}" - send_resolved: true - {{- end }} - - storage: {} - - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/ssl-redirect: "true" - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - hosts: - - alertmanager.{{ .Values.cluster_config.domain }} - paths: - - / - pathType: ImplementationSpecific - tls: - - secretName: alertmanager-general-tls - hosts: - - alertmanager.{{ .Values.cluster_config.domain }} - - ingressPerReplica: - pathType: ImplementationSpecific - - alertmanagerSpec: - affinity: {} - # nodeAffinity: - # requiredDuringSchedulingIgnoredDuringExecution: - # nodeSelectorTerms: - # - matchExpressions: - # - key: kubernetes.io/hostname - # operator: In - # values: - # - {{ .Values.cluster_config.cluster }}-0.itpartner.intern - - tolerations: [] - # - key: unschedulable - # operator: Exists - # effect: NoSchedule - - grafana: - defaultDashboardsEnabled: {{ .Values.prometheus.grafana.defaultDashboardsEnabled }} - {{- if .Values.prometheus.grafana.plugins }} - plugins: - {{- range .Values.prometheus.grafana.plugins }} - - {{ . }} - {{- end }} - {{- end }} - grafana.ini: - server: - root_url: "https://grafana.{{.Values.cluster_config.domain}}:443" - security: - allow_embedding: "true" - auth: - disable_login_form: "{{ .Values.prometheus.grafana.disable_login_form }}" - users: - auto_assign_org_role: "Admin" - {{- range .Values.cluster_config.oidc }} - {{- if eq .provider "azuread" }} - auth.{{ .provider }}: - enabled: true - name: {{ .name }} - client_id: $__file{/etc/secrets/oauth/{{ .name }}/client_id} - client_secret: $__file{/etc/secrets/oauth/{{ .name }}/client_secret} - scopes: openid email profile - auth_url: https://login.microsoftonline.com/{{ .tenant }}/oauth2/v2.0/authorize - token_url: https://login.microsoftonline.com/{{ .tenant }}/oauth2/v2.0/token - allowed_groups: {{ .group_id }} - allow_sign_up: true - role_attribute_strict: false - allow_assign_grafana_admin: true - {{- else if eq .provider "github" }} - auth.{{ .provider }}: - name: {{ .name }} - enabled: true - client_id: $__file{/etc/secrets/oauth/{{ .name }}/client_id} - client_secret: $__file{/etc/secrets/oauth/{{ .name }}/client_secret} - allowed_organizations: {{ .allowed_organizations }} - {{- if .allowed_teams }} - allowed_teams: "{{ .allowed_teams }}" - {{- end }} - scopes: user:email,read:org - auth_url: https://github.com/login/oauth/authorize - token_url: https://github.com/login/oauth/access_token - allow_sign_up: true - role_attribute_strict: false - allow_assign_grafana_admin: true - {{- end }} - {{- end }} - extraSecretMounts: - {{- range .Values.cluster_config.oidc }} - - name: {{ .name }} - secretName: {{ .secret_ref.name }} - defaultMode: 0440 - mountPath: /etc/secrets/oauth/{{ .name }} - readOnly: true - {{- end }} - - {{- if .Values.prometheus.grafana.persistence }} - persistence: - enabled: true - size: 10Gi - {{- end }} - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/ssl-redirect: "true" - {{- with .Values.cluster_config.ingress_whitelist_ips}} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - hosts: - - grafana.{{ .Values.cluster_config.domain }} - path: / - tls: - - secretName: grafana-general-tls - hosts: - - grafana.{{ .Values.cluster_config.domain }} - sidecar: - dashboards: - enabled: true - label: grafana_dashboard - folderAnnotation: grafana_folder - annotations: {} - multicluster: - global: - enabled: true - etcd: - enabled: false - provider: - allowUiUpdates: false - foldersFromFilesStructure: true - {{- if .Values.prometheus.thanos.datasource.enabled }} - datasources: - enabled: true - defaultDatasourceEnabled: true - url: http://thanos-query-frontend.thanos.svc:9090/ - # defaultDatasourceScrapeInterval: 15s - annotations: {} - - ## Create datasource for each Pod of Prometheus StatefulSet; - ## this uses headless service `prometheus-operated` which is - ## created by Prometheus Operator - ## ref: https://git.io/fjaBS - createPrometheusReplicasDatasources: false - label: grafana_datasource - {{ end }} - {{- if or .Values.loki.enabled .Values.prometheus.additionalDataSources }} - additionalDataSources: - {{- end }} - {{- if .Values.tempo.enabled }} - - name: Tempo - type: tempo - uid: tempo - orgId: 1 - url: http://tempo.tempo:3100 - isDefault: false - version: 1 - access: proxy - jsonData: - nodeGraph: - enabled: true - serviceMap: - datasourceUid: 'Prometheus' - tracesToLogs: - datasourceUid: loki - filterByTraceID: false - spanEndTimeShift: "500ms" - spanStartTimeShift: "-500ms" - timeInterval: 30s - {{- end }} - {{- if .Values.loki.enabled }} - - name: loki - type: loki - uid: loki - access: proxy - basicAuth: false - editable: false - jsonData: - tlsSkipVerify: false - {{- if .Values.tempo.enabled }} - derivedFields: - - datasourceUid: tempo - matcherRegex: trace_id - matcherType: label - name: Trace ID - url: $${__value.raw} - urlDisplayLabel: 'Trace ID: $${__value.raw}' - {{- end }} - orgId: 1 - url: http://loki-read-headless.loki:3100 - version: 1 - {{- end }} - {{- with .Values.prometheus.additionalDataSources }} - {{- toYaml . | nindent 10 }} - {{- end }} - - kubeApiServer: - tlsConfig: - serverName: kubernetes - insecureSkipVerify: true - - kubelet: - serviceMonitor: - https: {{ .Values.prometheus.kubelet.https }} - cAdvisor: true - - # NOTE(simkir): Including throttling seconds by setting this. We use that in some dashboards, and could be useful - ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion. - ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig - ## - cAdvisorMetricRelabelings: - # Drop less useful container CPU metrics. - - sourceLabels: [__name__] - action: drop - regex: 'container_cpu_(load_average_10s|system_seconds_total|user_seconds_total)' - # Drop less useful container / always zero filesystem metrics. - - sourceLabels: [__name__] - action: drop - regex: 'container_fs_(io_current|io_time_seconds_total|io_time_weighted_seconds_total|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)' - # Drop less useful / always zero container memory metrics. - - sourceLabels: [__name__] - action: drop - regex: 'container_memory_(mapped_file|swap)' - # Drop less useful container process metrics. - - sourceLabels: [__name__] - action: drop - regex: 'container_(file_descriptors|tasks_state|threads_max)' - # Drop container_memory_failures_total{scope="hierarchy"} metrics, - # we only need the container scope. - - sourceLabels: [__name__, scope] - action: drop - regex: 'container_memory_failures_total;hierarchy' - # Drop container_network_... metrics that match various interfaces that - # correspond to CNI and similar interfaces. This avoids capturing network - # metrics for host network containers. - - sourceLabels: [__name__, interface] - action: drop - regex: 'container_network_.*;(cali|cilium|cni|lxc|nodelocaldns|tunl).*' - # Drop container spec metrics that overlap with kube-state-metrics. - - sourceLabels: [__name__] - action: drop - regex: 'container_spec.*' - # Drop cgroup metrics with no pod. - - sourceLabels: [id, pod] - action: drop - regex: '.+;' - # - sourceLabels: [__name__, image] - # separator: ; - # regex: container_([a-z_]+); - # replacement: $1 - # action: drop - # - sourceLabels: [__name__] - # separator: ; - # regex: container_(network_tcp_usage_total|network_udp_usage_total|tasks_state|cpu_load_average_10s) - # replacement: $1 - # action: drop - - kubeControllerManager: - enabled: false - {{- if .Values.cluster_config.apiserverip }} - endpoints: - - {{ .Values.cluster_config.apiserverip }} - {{- end }} - service: - port: 10252 - selector: - k8s-app: kube-controller-manager - serviceMonitor: - enabled: true - https: true - insecureSkipVerify: true - - coreDns: - enabled: true - service: - targetPort: {{ .Values.prometheus.coredns.targetPort | default 10055 }} - selector: - k8s-app: kube-dns - - kubeEtcd: - enabled: true - {{- if .Values.cluster_config.etcd_nodes }} - endpoints: {{ .Values.cluster_config.etcd_nodes }} - {{- end }} - service: - port: {{ .Values.prometheus.etcd.targetPort | default 2379 }} - targetPort: {{ .Values.prometheus.etcd.targetPort | default 2379 }} - serviceMonitor: - enabled: true - scheme: https - insecureSkipVerify: true - caFile: /etc/prometheus/secrets/etcd-client-cert/ca.pem - certFile: /etc/prometheus/secrets/etcd-client-cert/etcd.pem - keyFile: /etc/prometheus/secrets/etcd-client-cert/etcd-key.pem - - kubeScheduler: - enabled: false - {{- if .Values.cluster_config.apiserverip }} - endpoints: - - {{ .Values.cluster_config.apiserverip }} - {{- end }} - service: - port: {{ .Values.prometheus.scheduler.targetPort | default 10251 }} - targetPort: {{ .Values.prometheus.scheduler.targetPort | default 10251 }} - selector: - k8s-app: kube-scheduler - - kubeProxy: - enabled: false - {{- if .Values.cluster_config.k8s_nodes }} - endpoints: {{ .Values.cluster_config.k8s_nodes }} - {{- else }} - service: - selector: - k8s-app: kube-proxy - {{- end }} - - prometheusOperator: - enabled: true - - admissionWebhooks: - certManager: - enabled: true - issuerRef: - name: "ca-issuer" - kind: "ClusterIssuer" - - kubeletService: - enabled: {{ .Values.prometheus.kubelet.enabled }} - - prometheus: - enabled: true - {{- if .Values.otel.enabled }} - enableRemoteWriteReceiver: true - {{- end }} - - thanosService: - enabled: false - type: ClusterIP - - ## gRPC port config - portName: grpc - port: 10901 - targetPort: "grpc" - - ## HTTP port config (for metrics) - httpPortName: http - httpPort: 10902 - targetHttpPort: "http" - - # Default is to make this a headless service ("None") - # clusterIP: "None" - - ## Port to expose on each node, if service type is NodePort - ## - nodePort: 30901 - httpNodePort: 30902 - - {{- if .Values.prometheus.thanos.enabled }} - # ServiceMonitor to scrape Sidecar metrics - # Needs thanosService to be enabled as well - thanosServiceMonitor: - enabled: true - interval: "" - - thanosIngress: - enabled: true - servicePort: 10901 - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/ssl-redirect: "true" - nginx.ingress.kubernetes.io/backend-protocol: "GRPC" - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - kubernetes.io/ingress.allow-http: "false" - hosts: - - thanos-gateway.{{ .Values.cluster_config.domain }} - paths: - - / - pathType: ImplementationSpecific - tls: - - secretName: thanos-gateway-tls - hosts: - - thanos-gateway.{{ .Values.cluster_config.domain }} - {{- end }} - - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/ssl-redirect: "true" - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - hosts: - - prometheus.{{ .Values.cluster_config.domain }} - paths: - - / - pathType: ImplementationSpecific - tls: - - secretName: prometheus-general-tls - hosts: - - prometheus.{{ .Values.cluster_config.domain }} - - ingressPerReplica: - enabled: false - pathType: ImplementationSpecific - - prometheusSpec: - tolerations: [] - # - key: unschedulable - # operator: Exists - # effect: NoSchedule - secrets: - - etcd-client-cert - storageSpec: - volumeClaimTemplate: - spec: - accessModes: ["ReadWriteOnce"] - resources: - requests: - storage: {{ .Values.prometheus.storage.size }} - {{- with .Values.prometheus.enableFeatures}} - enableFeatures: - {{- range . }} - - {{ . }} - {{- end }} - {{- end }} - - ## External labels to add to any time series or alerts when communicating with external systems - ## - externalLabels: - cluster: {{ .Values.cluster_config.cluster }} - - ## Name of the external label used to denote replica name - ## - replicaExternalLabelName: "" - - ## If true, the Operator won't add the external label used to denote replica name - ## - replicaExternalLabelNameClear: true - - ## Name of the external label used to denote Prometheus instance name - ## - prometheusExternalLabelName: "" - - ## If true, the Operator won't add the external label used to denote Prometheus instance name - ## - prometheusExternalLabelNameClear: true - - serviceMonitorSelectorNilUsesHelmValues: false - podMonitorSelectorNilUsesHelmValues: false - ruleSelectorNilUsesHelmValues: false - - ## Thanos configuration allows configuring various aspects of a Prometheus server in a Thanos environment. - ## This section is experimental, it may change significantly without deprecation notice in any release. - ## This is experimental and may change significantly without backward compatibility in any release. - ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#thanosspec - ## - {{- if .Values.prometheus.thanos.enabled }} - thanos: - objectStorageConfig: - key: thanos.yaml - name: thanos-objstore-config - {{- end }} - # remoteWrite: - # - url: https://thanos-receive.k1.itpartner.no/api/v1/receive - # name: {{ .Values.cluster_config.cluster }} - {{- with .Values.prometheus.additionalScrapeConfigs}} - additionalScrapeConfigs: - {{- toYaml . | nindent 12 }} - {{- end }} - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - ServerSideApply=true - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.prometheus.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} - ignoreDifferences: - - group: apps - kind: Deployment - jqPathExpressions: - - '.spec.template.spec.containers[]?.resources' - - group: monitoring.coreos.com - kind: ServiceMonitor - jqPathExpressions: - - '.spec.endpoints[]?.relabelings' - - group: admissionregistration.k8s.io - kind: MutatingWebhookConfiguration - jqPathExpressions: - - '.webhooks[]?.clientConfig.caBundle' - - group: admissionregistration.k8s.io - kind: ValidatingWebhookConfiguration - jqPathExpressions: - - '.webhooks[]?.clientConfig.caBundle' ---- -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prometheus-crd - namespace: argocd - annotations: - argocd.argoproj.io/sync-wave: "-1" - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: prometheus - server: 'https://kubernetes.default.svc' - source: - repoURL: 'https://prometheus-community.github.io/helm-charts' - targetRevision: '{{ .Values.prometheus.crd_version }}' - chart: prometheus-operator-crds - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - automated: {} - syncOptions: - - ServerSideApply=true - - CreateNamespace=true - - ApplyOutOfSyncOnly=true -{{- end }} diff --git a/attic/templates/promtail.yaml b/attic/templates/promtail.yaml deleted file mode 100644 index c2602d57..00000000 --- a/attic/templates/promtail.yaml +++ /dev/null @@ -1,50 +0,0 @@ -{{ if .Values.promtail.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: promtail - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: loki - server: 'https://kubernetes.default.svc' - sources: - #- repoURL: {{ .Values.cluster_config.manifests }} - # path: {{ .Values.cluster_config.policies }}/promtail - # targetRevision: HEAD - - repoURL: 'https://grafana.github.io/helm-charts' - targetRevision: {{ .Values.promtail.version }} - chart: promtail - helm: - values: | - config: - snippets: - pipelineStages: - - labelallow: - - app - - app_kubernetes_io_component - - app_kubernetes_io_instance - - app_kubernetes_io_version - - container - - instance - - namespace - - pod - - stream - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.promtail.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{ end }} diff --git a/attic/templates/rabbitmq-operator.yaml b/attic/templates/rabbitmq-operator.yaml deleted file mode 100644 index 1b39a4c0..00000000 --- a/attic/templates/rabbitmq-operator.yaml +++ /dev/null @@ -1,60 +0,0 @@ -{{ if .Values.rabbitmq_operator.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: rabbitmq-operator - namespace: argocd -spec: - destination: - namespace: rabbitmq - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/rabbitmq - targetRevision: HEAD - - repoURL: 'https://charts.bitnami.com/bitnami' - targetRevision: {{ .Values.rabbitmq_operator.version }} - chart: rabbitmq-cluster-operator - helm: - # NOTE(mrtz): Also add metrics for topology operator? - values: | - fullnameOverride: rabbitmq-operator - additionalArgs: [] - useCertManager: true - {{ if .Values.rabbitmq_operator.metrics }} - clusterOperator: - metrics: - service: - enabled: true - serviceMonitor: - enabled: true - podMonitor: - enabled: true - {{ end }} - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - - ServerSideApply=true - {{- if .Values.rabbitmq_operator.version }} - automated: - prune: true - # selfHeal: false - ignoreDifferences: - - group: "" - kind: Secret - name: rabbitmq-operator-messaging-topology-operator-webhook - jsonPointers: - - /data/ca.crt - - /data/tls.crt - - /data/tls.key - - group: admissionregistration.k8s.io - kind: ValidatingWebhookConfiguration - jqPathExpressions: - - '.webhooks[]?.clientConfig.caBundle' - {{- end }} -{{ end }} diff --git a/attic/templates/rabbitmq.yaml b/attic/templates/rabbitmq.yaml deleted file mode 100644 index 418dbd50..00000000 --- a/attic/templates/rabbitmq.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{- if .Values.rabbitmq.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: ApplicationSet -metadata: - name: rabbitmq - namespace: argocd -spec: - generators: - - list: - elements: - - cluster: https://kubernetes.default.svc - env: prod - hostname: rabbitmq.srv.oceanbox.io - - cluster: https://kubernetes.default.svc - env: staging - hostname: rabbitmq.beta.oceanbox.io - template: - metadata: - name: '{{- env }}-rabbitmq' - spec: - project: aux - destination: - server: https://kubernetes.default.svc - namespace: rabbitmq - sources: - - repoURL: https://charts.bitnami.com/bitnami - targetRevision: 12.9.0 - chart: rabbitmq - helm: - valueFiles: - - $values/values/rabbitmq/values-{{- env }}.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: values/rabbitmq/{{- env }} - ref: values -{{- end }} diff --git a/attic/templates/redis.yaml b/attic/templates/redis.yaml deleted file mode 100644 index 83eccd76..00000000 --- a/attic/templates/redis.yaml +++ /dev/null @@ -1,30 +0,0 @@ -{{- if .Values.redis.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prod-redis - namespace: argocd -spec: - project: aux - destination: - server: https://kubernetes.default.svc - namespace: redis - sources: - - repoURL: https://charts.bitnami.com/bitnami - targetRevision: 19.5.2 - chart: redis - helm: - valueFiles: - - $values/values/redis/values-prod.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: HEAD - ref: values - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: values/redis/prod - ignoreDifferences: - - group: apps - kind: StatefulSet - jqPathExpressions: - - '.spec.template.spec.containers[].resources.limits.cpu' -{{- end }} diff --git a/attic/templates/resources/cluster-auth-rbac.yaml b/attic/templates/resources/cluster-auth-rbac.yaml deleted file mode 100644 index ee655308..00000000 --- a/attic/templates/resources/cluster-auth-rbac.yaml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cluster-admin - namespace: kube-system ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: cluster-admin -roleRef: - kind: ClusterRole - name: cluster-admin - apiGroup: rbac.authorization.k8s.io -subjects: -- kind: ServiceAccount - namespace: kube-system - name: cluster-admin -- apiGroup: rbac.authorization.k8s.io - kind: Group - name: 'system:masters' ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: system-default -roleRef: - kind: ClusterRole - name: cluster-admin - apiGroup: rbac.authorization.k8s.io -subjects: -- kind: ServiceAccount - namespace: kube-system - name: default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: kubernetes -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: -- apiGroup: rbac.authorization.k8s.io - kind: User - name: kubernetes diff --git a/attic/templates/resources/dashboards/argocd.yaml b/attic/templates/resources/dashboards/argocd.yaml deleted file mode 100644 index ffdb9ae5..00000000 --- a/attic/templates/resources/dashboards/argocd.yaml +++ /dev/null @@ -1,4260 +0,0 @@ -apiVersion: v1 -data: - argocd.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 68, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Overview", - "type": "row" - }, - { - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 4, - "w": 2, - "x": 0, - "y": 1 - }, - "id": 26, - "links": [], - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "![argoimage](https://avatars1.githubusercontent.com/u/30269780?s=110&v=4)", - "mode": "markdown" - }, - "pluginVersion": "9.2.4", - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "transparent": true, - "type": "text" - }, - { - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "dtdurations" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 2, - "y": 1 - }, - "id": 32, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.2.4", - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "time() - max(process_start_time_seconds{job=\"argocd-server-metrics\",namespace=~\"$namespace\"})", - "format": "time_series", - "intervalFactor": 1, - "refId": "A" - } - ], - "title": "Uptime", - "type": "stat" - }, - { - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "0" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 5, - "y": 1 - }, - "id": 94, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.2.4", - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "count(count by (server) (argocd_cluster_info{namespace=~\"$namespace\"}))", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "refId": "A" - } - ], - "title": "Clusters", - "type": "stat" - }, - { - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 8, - "y": 1 - }, - "id": 75, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.2.4", - "repeatDirection": "h", - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(argocd_app_info{namespace=~\"$namespace\",dest_server=~\"$cluster\",health_status=~\"$health_status\",sync_status=~\"$sync_status\"})", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "refId": "A" - } - ], - "title": "Applications", - "type": "stat" - }, - { - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "0" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 11, - "y": 1 - }, - "id": 107, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.2.4", - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "count(count by (repo) (argocd_app_info{namespace=~\"$namespace\"}))", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "refId": "A" - } - ], - "title": "Repositories", - "type": "stat" - }, - { - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "id": 0, - "op": "=", - "text": "0", - "type": 1, - "value": "null" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 14, - "y": 1 - }, - "id": 100, - "links": [], - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "9.2.4", - "repeatDirection": "h", - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(argocd_app_info{namespace=~\"$namespace\",dest_server=~\"$cluster\",operation!=\"\"})", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Operations", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 4, - "w": 7, - "x": 17, - "y": 1 - }, - "hiddenSeries": false, - "id": 28, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(argocd_app_info{namespace=~\"$namespace\",dest_server=~\"$cluster\",health_status=~\"$health_status\",sync_status=~\"$sync_status\"}) by (namespace)", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{`{{namespace}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Applications", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 77, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Application Status", - "type": "row" - }, - { - "aliasColors": { - "Degraded": "semi-dark-red", - "Healthy": "green", - "Missing": "semi-dark-purple", - "Progressing": "semi-dark-blue", - "Suspended": "semi-dark-orange", - "Unknown": "rgb(255, 255, 255)" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 6 - }, - "hiddenSeries": false, - "id": 105, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(argocd_app_info{namespace=~\"$namespace\",dest_server=~\"$cluster\",health_status=~\"$health_status\",sync_status=~\"$sync_status\",health_status!=\"\"}) by (health_status)", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{`{{health_status}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Health Status", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 2, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": { - "Degraded": "semi-dark-red", - "Healthy": "green", - "Missing": "semi-dark-purple", - "OutOfSync": "semi-dark-yellow", - "Progressing": "semi-dark-blue", - "Suspended": "semi-dark-orange", - "Synced": "semi-dark-green", - "Unknown": "rgb(255, 255, 255)" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 6 - }, - "hiddenSeries": false, - "id": 106, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(argocd_app_info{namespace=~\"$namespace\",dest_server=~\"$cluster\",health_status=~\"$health_status\",sync_status=~\"$sync_status\",health_status!=\"\"}) by (sync_status)", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{`{{sync_status}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Sync Status", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 2, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 104, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Sync Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 13 - }, - "hiddenSeries": false, - "id": 56, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "total", - "sortDesc": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 1, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(round(increase(argocd_app_sync_total{namespace=~\"$namespace\",dest_server=~\"$cluster\"}[$interval]))) by ($grouping)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{$grouping}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Sync Activity", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "short", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "decimals": -12, - "format": "short", - "label": "", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 24, - "x": 0, - "y": 19 - }, - "hiddenSeries": false, - "id": 73, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "total", - "sortDesc": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(round(increase(argocd_app_sync_total{namespace=~\"$namespace\",phase=~\"Error|Failed\",dest_server=~\"$cluster\"}[$interval]))) by ($grouping, phase)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{phase}}`}}: {{`{{$grouping}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Sync Failures", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "none", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 24 - }, - "id": 64, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Controller Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 25 - }, - "hiddenSeries": false, - "id": 58, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sort": "total", - "sortDesc": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_app_reconcile_count{namespace=~\"$namespace\",dest_server=~\"$cluster\"}[$interval])) by ($grouping)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{$grouping}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Reconciliation Activity", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "cards": {}, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateSpectral", - "exponent": 0.5, - "mode": "spectrum" - }, - "dataFormat": "tsbuckets", - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 31 - }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 60, - "legend": { - "show": true - }, - "links": [], - "options": { - "calculate": false, - "calculation": {}, - "cellGap": 2, - "cellValues": { - "decimals": 0 - }, - "color": { - "exponent": 0.5, - "fill": "#b4ff00", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "Spectral", - "steps": 128 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "showValue": "never", - "tooltip": { - "show": true, - "yHistogram": true - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false, - "unit": "short" - } - }, - "pluginVersion": "9.2.4", - "reverseYBuckets": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_app_reconcile_bucket{namespace=~\"$namespace\"}[$interval])) by (le)", - "format": "heatmap", - "instant": false, - "intervalFactor": 10, - "legendFormat": "{{`{{le}}`}}", - "refId": "A" - } - ], - "title": "Reconciliation Performance", - "tooltip": { - "show": true, - "showHistogram": true - }, - "tooltipDecimals": 0, - "type": "heatmap", - "xAxis": { - "show": true - }, - "yAxis": { - "format": "short", - "logBase": 1, - "show": true - }, - "yBucketBound": "auto" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 38 - }, - "hiddenSeries": false, - "id": 80, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_app_k8s_request_total{namespace=~\"$namespace\",server=~\"$cluster\"}[$interval])) by (verb, resource_kind)", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{`{{verb}}`}} {{`{{resource_kind}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "K8s API Activity", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 44 - }, - "hiddenSeries": false, - "id": 96, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideZero": true, - "max": true, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(workqueue_depth{namespace=~\"$namespace\",name=~\"app_.*\"}) by (name)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{name}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Workqueue Depth", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 44 - }, - "hiddenSeries": false, - "id": 98, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideZero": false, - "max": true, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(argocd_kubectl_exec_pending{namespace=~\"$namespace\"}) by (command)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{command}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Pending kubectl run", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "short", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "decimals": 0, - "format": "short", - "label": "", - "logBase": 1, - "min": "0", - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 51 - }, - "id": 102, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Controller Telemetry", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 52 - }, - "hiddenSeries": false, - "id": 34, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "editorMode": "code", - "expr": "go_memstats_heap_alloc_bytes{job=~\"argocd-application-controller-metrics|argocd-applicationset-controller-metrics\",namespace=\"$namespace\"}", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{namespace}}`}}", - "range": true, - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Memory Usage", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 59 - }, - "hiddenSeries": false, - "id": 108, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "editorMode": "code", - "expr": "irate(process_cpu_seconds_total{job=~\"argocd-notifications-controller-metrics|argocd-applicationset-controller-metrics\",namespace=~\"$namespace\"}[1m])", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{namespace}}`}}", - "range": true, - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "CPU Usage", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 1, - "format": "none", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 66 - }, - "hiddenSeries": false, - "id": 62, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "editorMode": "code", - "expr": "go_goroutines{job=~\"argocd-application-controller-metrics|argocd-applicationset-controller-metrics\",namespace=~\"$namespace\"}", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{namespace}}`}}", - "range": true, - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Goroutines", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 73 - }, - "id": 88, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Cluster Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 74 - }, - "hiddenSeries": false, - "id": 90, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(argocd_cluster_api_resource_objects{namespace=~\"$namespace\",server=~\"$cluster\"}) by (server)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{server}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Resource Objects Count", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 81 - }, - "hiddenSeries": false, - "id": 92, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": " sum(argocd_cluster_api_resources{namespace=~\"$namespace\",server=~\"$cluster\"}) by (server)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{server}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "API Resources Count", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 87 - }, - "hiddenSeries": false, - "id": 86, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_cluster_events_total{namespace=~\"$namespace\",server=~\"$cluster\"}[$interval])) by (server)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{server}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Cluster Events Count", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 94 - }, - "id": 70, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Repo Server Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 95 - }, - "hiddenSeries": false, - "id": 82, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_git_request_total{request_type=\"ls-remote\", namespace=~\"$namespace\"}[10m])) by (namespace)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{namespace}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Git Requests (ls-remote)", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 95 - }, - "hiddenSeries": false, - "id": 84, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_git_request_total{request_type=\"fetch\", namespace=~\"$namespace\"}[10m])) by (namespace)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{namespace}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Git Requests (checkout)", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "cards": {}, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateSpectral", - "exponent": 0.5, - "mode": "spectrum" - }, - "dataFormat": "tsbuckets", - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 103 - }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 114, - "legend": { - "show": false - }, - "options": { - "calculate": false, - "calculation": {}, - "cellGap": 2, - "cellValues": {}, - "color": { - "exponent": 0.5, - "fill": "#b4ff00", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "Spectral", - "steps": 128 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": false - }, - "rowsFrame": { - "layout": "auto" - }, - "showValue": "never", - "tooltip": { - "show": true, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false, - "unit": "short" - } - }, - "pluginVersion": "9.2.4", - "reverseYBuckets": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_git_request_duration_seconds_bucket{request_type=\"fetch\", namespace=~\"$namespace\"}[$interval])) by (le)", - "format": "heatmap", - "intervalFactor": 10, - "legendFormat": "{{`{{le}}`}}", - "refId": "A" - } - ], - "title": "Git Fetch Performance", - "tooltip": { - "show": true, - "showHistogram": false - }, - "type": "heatmap", - "xAxis": { - "show": true - }, - "yAxis": { - "format": "short", - "logBase": 1, - "show": true - }, - "yBucketBound": "auto" - }, - { - "cards": {}, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateSpectral", - "exponent": 0.5, - "mode": "spectrum" - }, - "dataFormat": "tsbuckets", - "datasource": { - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 103 - }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 116, - "legend": { - "show": false - }, - "options": { - "calculate": false, - "calculation": {}, - "cellGap": 2, - "cellValues": {}, - "color": { - "exponent": 0.5, - "fill": "#b4ff00", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "Spectral", - "steps": 128 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": false - }, - "rowsFrame": { - "layout": "auto" - }, - "showValue": "never", - "tooltip": { - "show": true, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false, - "unit": "short" - } - }, - "pluginVersion": "9.2.4", - "reverseYBuckets": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(argocd_git_request_duration_seconds_bucket{request_type=\"ls-remote\", namespace=~\"$namespace\"}[$interval])) by (le)", - "format": "heatmap", - "intervalFactor": 10, - "legendFormat": "{{`{{le}}`}}", - "refId": "A" - } - ], - "title": "Git Ls-Remote Performance", - "tooltip": { - "show": true, - "showHistogram": false - }, - "type": "heatmap", - "xAxis": { - "show": true - }, - "yAxis": { - "format": "short", - "logBase": 1, - "show": true - }, - "yBucketBound": "auto" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 111 - }, - "hiddenSeries": false, - "id": 71, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "editorMode": "code", - "expr": "go_memstats_heap_alloc_bytes{job=\"argocd-repo-server-metrics\",namespace=~\"$namespace\"}", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{pod}}`}}", - "range": true, - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Memory Used", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 119 - }, - "hiddenSeries": false, - "id": 72, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "editorMode": "code", - "expr": "go_goroutines{job=\"argocd-repo-server-metrics\",namespace=~\"$namespace\"}", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{pod}}`}}", - "range": true, - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Goroutines", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "uid": "$datasource" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 126 - }, - "id": 66, - "panels": [], - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "refId": "A" - } - ], - "title": "Server Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 127 - }, - "hiddenSeries": false, - "id": 61, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "go_memstats_heap_alloc_bytes{job=\"argocd-server-metrics\",namespace=~\"$namespace\"}", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Memory Used", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 135 - }, - "hiddenSeries": false, - "id": 36, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "go_goroutines{job=\"argocd-server-metrics\",namespace=~\"$namespace\"}", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Goroutines", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 144 - }, - "hiddenSeries": false, - "id": 38, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "go_gc_duration_seconds{job=\"argocd-server-metrics\", quantile=\"1\", namespace=~\"$namespace\"}", - "format": "time_series", - "intervalFactor": 2, - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "GC Time Quantiles", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "gridPos": { - "h": 2, - "w": 24, - "x": 0, - "y": 153 - }, - "id": 54, - "links": [], - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "#### gRPC Services:", - "mode": "markdown" - }, - "pluginVersion": "9.2.4", - "transparent": true, - "type": "text" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 155 - }, - "hiddenSeries": false, - "id": 40, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sort": "total", - "sortDesc": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"application.ApplicationService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "ApplicationService Requests", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 155 - }, - "hiddenSeries": false, - "id": 42, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"cluster.ClusterService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "ClusterService Requests", - "tooltip": { - "shared": false, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 164 - }, - "hiddenSeries": false, - "id": 44, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"project.ProjectService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "ProjectService Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 164 - }, - "hiddenSeries": false, - "id": 46, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"repository.RepositoryService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "yaxis": "left" - } - ], - "timeRegions": [], - "title": "RepositoryService Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 173 - }, - "hiddenSeries": false, - "id": 48, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"session.SessionService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "SessionService Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 173 - }, - "hiddenSeries": false, - "id": 49, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"version.VersionService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "VersionService Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 182 - }, - "hiddenSeries": false, - "id": 50, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"account.AccountService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "AccountService Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "$datasource" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 182 - }, - "hiddenSeries": false, - "id": 99, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": true, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "paceLength": 10, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "uid": "$datasource" - }, - "expr": "sum(increase(grpc_server_handled_total{job=\"argocd-server-metrics\",grpc_service=\"settings.SettingsService\",namespace=~\"$namespace\"}[$interval])) by (grpc_code, grpc_method)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{`{{grpc_code}}`}},{{`{{grpc_method}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "SettingsService Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 191 - }, - "id": 110, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Redis Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 192 - }, - "hiddenSeries": false, - "id": 112, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.2.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum(increase(argocd_redis_request_total{namespace=~\"$namespace\"}[$interval])) by (failed)", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Requests by result", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - } - ], - "refresh": false, - "schemaVersion": 37, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "allValue": ".*", - "current": { - "selected": true, - "text": "argocd", - "value": "argocd" - }, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "definition": "label_values(kube_pod_info, namespace)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "namespace", - "options": [], - "query": { - "query": "label_values(kube_pod_info, namespace)", - "refId": "Prometheus-namespace-Variable-Query" - }, - "refresh": 1, - "regex": ".*argocd.*", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": true, - "auto_count": 30, - "auto_min": "1m", - "current": { - "selected": false, - "text": "auto", - "value": "$__auto_interval_interval" - }, - "hide": 0, - "name": "interval", - "options": [ - { - "selected": true, - "text": "auto", - "value": "$__auto_interval_interval" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "2h", - "value": "2h" - }, - { - "selected": false, - "text": "4h", - "value": "4h" - }, - { - "selected": false, - "text": "8h", - "value": "8h" - } - ], - "query": "1m,5m,10m,30m,1h,2h,4h,8h", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - }, - { - "allValue": "", - "current": { - "selected": true, - "text": "namespace", - "value": "namespace" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "grouping", - "options": [ - { - "selected": true, - "text": "namespace", - "value": "namespace" - }, - { - "selected": false, - "text": "name", - "value": "name" - }, - { - "selected": false, - "text": "project", - "value": "project" - } - ], - "query": "namespace,name,project", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "definition": "label_values(argocd_cluster_info, server)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "query": "label_values(argocd_cluster_info, server)", - "refId": "Prometheus-cluster-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": true, - "text": "All", - "value": "$__all" - }, - "hide": 0, - "includeAll": true, - "multi": false, - "name": "health_status", - "options": [ - { - "selected": true, - "text": "All", - "value": "$__all" - }, - { - "selected": false, - "text": "Healthy", - "value": "Healthy" - }, - { - "selected": false, - "text": "Progressing", - "value": "Progressing" - }, - { - "selected": false, - "text": "Suspended", - "value": "Suspended" - }, - { - "selected": false, - "text": "Missing", - "value": "Missing" - }, - { - "selected": false, - "text": "Degraded", - "value": "Degraded" - }, - { - "selected": false, - "text": "Unknown", - "value": "Unknown" - } - ], - "query": "Healthy,Progressing,Suspended,Missing,Degraded,Unknown", - "skipUrlSync": false, - "type": "custom" - }, - { - "allValue": ".*", - "current": { - "selected": true, - "text": "All", - "value": "$__all" - }, - "hide": 0, - "includeAll": true, - "multi": false, - "name": "sync_status", - "options": [ - { - "selected": true, - "text": "All", - "value": "$__all" - }, - { - "selected": false, - "text": "Synced", - "value": "Synced" - }, - { - "selected": false, - "text": "OutOfSync", - "value": "OutOfSync" - }, - { - "selected": false, - "text": "Unknown", - "value": "Unknown" - } - ], - "query": "Synced,OutOfSync,Unknown", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "", - "title": "ArgoCD", - "uid": "LCAgc9rWz", - "version": 1, - "weekStart": "" - } -kind: ConfigMap -metadata: - name: argocd-dashboard - namespace: prometheus - labels: - grafana_dashboard: "1" diff --git a/attic/templates/resources/dashboards/cnpg-postgres.yaml b/attic/templates/resources/dashboards/cnpg-postgres.yaml deleted file mode 100644 index 0b2b5007..00000000 --- a/attic/templates/resources/dashboards/cnpg-postgres.yaml +++ /dev/null @@ -1,3908 +0,0 @@ -{{- if .Values.postgres_operator.enabled }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: cnpg-dashboard - namespace: prometheus - labels: - grafana_dashboard: "1" - app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: grafana - app.kubernetes.io/version: 9.1.7 - helm.sh/chart: grafana-6.40.4 -data: - cnp.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": null, - "graphTooltip": 0, - "iteration": 1637064390546, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 12, - "panels": [], - "title": "Server Health", - "type": "row" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 0, - "y": 1 - }, - "id": 191, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Instance", - "transparent": true, - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 2, - "x": 3, - "y": 1 - }, - "id": 192, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Status", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 4, - "x": 5, - "y": 1 - }, - "id": 193, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Clustering / replicas", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 5, - "x": 9, - "y": 1 - }, - "id": 195, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Connections", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 14, - "y": 1 - }, - "id": 196, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Max Connections", - "type": "text" - }, - { - "datasource": "${DataSource}", - "description": "", - "gridPos": { - "h": 1, - "w": 3, - "x": 17, - "y": 1 - }, - "id": 197, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Wraparound", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 2, - "x": 20, - "y": 1 - }, - "id": 313, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Started", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 2, - "x": 22, - "y": 1 - }, - "id": 198, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Server Version", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 3, - "w": 3, - "x": 0, - "y": 2 - }, - "id": 61, - "options": { - "content": "\n \n

$instances

\n
", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "text" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "0": { - "index": 0, - "text": "Down" - }, - "1": { - "index": 1, - "text": "Up" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red", - "value": null - }, - { - "color": "green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 3, - "y": 2 - }, - "id": 33, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "0": { - "color": "red", - "index": 1, - "text": "No" - }, - "1": { - "color": "green", - "index": 0, - "text": "Yes" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 5, - "y": 2 - }, - "id": 60, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "1 - cnpg_pg_replication_in_recovery{namespace=~\"$namespace\",pod=~\"$instances\"} + cnpg_pg_replication_is_wal_receiver_up{namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "transformations": [], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 7, - "y": 2 - }, - "id": 229, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_replication_streaming_replicas{namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "transformations": [], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 9, - "y": 2 - }, - "id": 58, - "options": { - "legend": { - "calcs": [ - "last", - "mean" - ], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "sum by (pod) (cnpg_backends_total{namespace=~\"$namespace\",pod=~\"$instances\"})", - "instant": false, - "interval": "", - "legendFormat": "-", - "refId": "A" - } - ], - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "max": 100, - "noValue": "<1%", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 75 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 14, - "y": 2 - }, - "id": 32, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "100 * sum by (pod) (cnpg_backends_total{namespace=~\"$namespace\",pod=~\"$instances\"}) / sum by (pod) (cnpg_pg_settings_setting{name=\"max_connections\",namespace=~\"$namespace\",pod=~\"$instances\"})", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "gauge" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "max": 2147483647, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 200000000 - }, - { - "color": "red", - "value": 1000000000 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 17, - "y": 2 - }, - "id": 8, - "options": { - "displayMode": "lcd", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "max by (pod) (cnpg_pg_database_xid_age{namespace=~\"$namespace\",pod=~\"$instances\"})", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "bargauge" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-blue", - "value": null - } - ] - }, - "unit": "dateTimeFromNow" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 20, - "y": 2 - }, - "id": 314, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": false, - "expr": "cnpg_pg_postmaster_start_time{namespace=~\"$namespace\",pod=~\"$instances\"}*1000", - "format": "time_series", - "hide": false, - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "transformations": [], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-blue", - "value": null - } - ] - }, - "unit": "string" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 22, - "y": 2 - }, - "id": 42, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": false, - "expr": "cnpg_collector_postgres_version{namespace=~\"$namespace\",pod=~\"$instances\"}", - "format": "time_series", - "hide": false, - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "transformations": [], - "type": "stat" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 41, - "panels": [ - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 0, - "y": 6 - }, - "id": 187, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Instance", - "transparent": true, - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 3, - "y": 6 - }, - "id": 183, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Max Connections", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 6, - "y": 6 - }, - "id": 184, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Shared Buffers", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 9, - "y": 6 - }, - "id": 185, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Effective Cache Size", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 12, - "y": 6 - }, - "id": 186, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Work Mem", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 15, - "y": 6 - }, - "id": 188, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Maintenance Work Mem", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 18, - "y": 6 - }, - "id": 189, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Random Page Cost", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 3, - "x": 21, - "y": 6 - }, - "id": 190, - "options": { - "content": "", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Sequential Page Cost", - "type": "text" - }, - { - "datasource": "${DataSource}", - "gridPos": { - "h": 3, - "w": 3, - "x": 0, - "y": 7 - }, - "id": 86, - "options": { - "content": "\n \n

$instances

\n
", - "mode": "html" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "kube_pod_container_status_ready{container=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "text" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 3, - "y": 7 - }, - "id": 30, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_settings_setting{name=\"max_connections\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 6, - "y": 7 - }, - "id": 24, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "max by (pod) (cnpg_pg_settings_setting{name=\"shared_buffers\",namespace=~\"$namespace\",pod=~\"$instances\"}) * max by (pod) (cnpg_pg_settings_setting{name=\"block_size\",namespace=~\"$namespace\",pod=~\"$instances\"})", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 9, - "y": 7 - }, - "id": 57, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_settings_setting{name=\"effective_cache_size\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 12, - "y": 7 - }, - "id": 26, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_settings_setting{name=\"work_mem\",namespace=~\"$namespace\",pod=~\"$instances\"} * 1024", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 15, - "y": 7 - }, - "id": 47, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_settings_setting{name=\"maintenance_work_mem\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 18, - "y": 7 - }, - "id": 48, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_settings_setting{name=\"random_page_cost\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 21, - "y": 7 - }, - "id": 56, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.1", - "repeat": "instances", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_settings_setting{name=\"seq_page_cost\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "type": "stat" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto", - "filterable": true - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-purple", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 150, - "options": { - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "parameter" - } - ] - }, - "pluginVersion": "8.2.1", - "repeatDirection": "v", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_settings_setting{namespace=~\"$namespace\",pod=~\"$instances\"}", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Configurations", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "__name__": true, - "container": true, - "endpoint": true, - "instance": true, - "job": true, - "name": false, - "namespace": true, - "pod": false - }, - "indexByName": { - "Time": 0, - "Value": 9, - "__name__": 1, - "container": 2, - "endpoint": 3, - "instance": 4, - "job": 5, - "name": 7, - "namespace": 8, - "pod": 6 - }, - "renameByName": { - "__name__": "", - "name": "parameter" - } - } - } - ], - "type": "table" - } - ], - "title": "Configuration", - "type": "row" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 10, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DataSource}", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 7 - }, - "hiddenSeries": false, - "id": 273, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.2.1", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{pod=~\"$instances\", namespace=~\"$namespace\"}) by (pod)", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "{{`{{pod}}`}}", - "legendLink": null, - "refId": "A", - "step": 10 - }, - { - "exemplar": true, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{pod=~\"$instances\", namespace=~\"$namespace\"})", - "hide": false, - "interval": "", - "legendFormat": "total", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:189", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "$$hashKey": "object:190", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DataSource}", - "fill": 2, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 7 - }, - "hiddenSeries": false, - "id": 275, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.2.1", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "quota - requests", - "color": "#F2495C", - "dashes": true, - "fill": 0, - "hiddenSeries": true, - "hideTooltip": true, - "legend": true, - "linewidth": 2, - "stack": false - }, - { - "alias": "quota - limits", - "color": "#FF9830", - "dashes": true, - "fill": 0, - "hiddenSeries": true, - "hideTooltip": true, - "legend": true, - "linewidth": 2, - "stack": false - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{pod=~\"$instances\", namespace=\"$namespace\", container!=\"\", image!=\"\"}) by (pod)", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "{{`{{pod}}`}}", - "legendLink": null, - "refId": "A", - "step": 10 - }, - { - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{pod=~\"$instances\", namespace=\"$namespace\", container!=\"\", image!=\"\"})", - "hide": false, - "interval": "", - "legendFormat": "total", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory Usage (w/o cache)", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:246", - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "$$hashKey": "object:247", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 39, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "sum(cnpg_backends_total{namespace=~\"$namespace\",pod=~\"$instances\"}) by (pod)", - "hide": false, - "interval": "", - "legendFormat": "total ({{`{{pod}}`}})", - "refId": "B" - }, - { - "exemplar": true, - "expr": "sum(cnpg_backends_total{namespace=~\"$namespace\",pod=~\"$instances\"}) by (state, pod)", - "interval": "", - "legendFormat": "{{`{{state}}`}} ({{`{{pod}}`}})", - "refId": "A" - } - ], - "title": "Session States", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 22 - }, - "id": 50, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "sum(rate(cnpg_pg_stat_database_xact_commit{namespace=~\"$namespace\",pod=~\"$instances\"}[5m])) by (pod)", - "interval": "", - "legendFormat": "committed ({{`{{pod}}`}})", - "refId": "A" - }, - { - "exemplar": true, - "expr": "sum(rate(cnpg_pg_stat_database_xact_rollback{namespace=~\"$namespace\",pod=~\"$instances\"}[5m])) by (pod)", - "hide": false, - "interval": "", - "legendFormat": "rolled back ({{`{{pod}}`}})", - "refId": "B" - } - ], - "title": "Transactions [5m]", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 22 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "max by (pod) (cnpg_backends_max_tx_duration_seconds{namespace=~\"$namespace\",pod=~\"$instances\"})", - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Longest Transaction", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 30 - }, - "id": 55, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_deadlocks{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "count ({{`{{pod}}`}})", - "refId": "B" - } - ], - "title": "Deadlocks [5m]", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 30 - }, - "id": 54, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_backends_waiting_total{namespace=~\"$namespace\",pod=~\"$instances\"}", - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Blocked Queries", - "type": "timeseries" - } - ], - "title": "Operational Stats", - "type": "row" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 35, - "panels": [ - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 35 - }, - "id": 44, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_tup_deleted{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "interval": "", - "legendFormat": "deleted ({{`{{pod}}`}})", - "refId": "A" - }, - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_tup_inserted{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "hide": false, - "interval": "", - "legendFormat": "inserted ({{`{{pod}}`}})", - "refId": "B" - }, - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_tup_fetched{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "hide": false, - "interval": "", - "legendFormat": "fetched ({{`{{pod}}`}})", - "refId": "C" - }, - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_tup_returned{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "hide": false, - "interval": "", - "legendFormat": "returned ({{`{{pod}}`}})", - "refId": "D" - }, - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_tup_updated{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "hide": false, - "interval": "", - "legendFormat": "updated ({{`{{pod}}`}})", - "refId": "E" - } - ], - "title": "Tuple I/O [5m]", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 35 - }, - "id": 46, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_blks_hit{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "interval": "", - "legendFormat": "hit ({{`{{pod}}`}})", - "refId": "A" - }, - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_blks_read{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "hide": false, - "interval": "", - "legendFormat": "read ({{`{{pod}}`}})", - "refId": "B" - } - ], - "title": "Block I/O [5m]", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 43 - }, - "id": 22, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "pluginVersion": "8.0.5", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_database_size_bytes{datname!~\"template.*\",datname!=\"postgres\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "interval": "", - "legendFormat": " {{`{{pod}}`}}: {{`{{datname}}`}}", - "refId": "A" - } - ], - "title": "Database Size", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 43 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_database_temp_bytes{datname=\"\",namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "instant": false, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Temp Bytes [5m]", - "type": "timeseries" - } - ], - "title": "Storage & I/O", - "type": "row" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 37, - "panels": [ - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 53 - }, - "id": 6, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_collector_pg_wal_archive_status{value=\"ready\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "interval": "", - "legendFormat": "ready ({{`{{pod}}`}})", - "refId": "A" - }, - { - "exemplar": true, - "expr": "cnpg_collector_pg_wal_archive_status{value=\"done\",namespace=~\"$namespace\",pod=~\"$instances\"}", - "hide": false, - "interval": "", - "legendFormat": "done ({{`{{pod}}`}})", - "refId": "B" - } - ], - "title": "WAL Segment Archive Status", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 53 - }, - "id": 52, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_archiver_archived_count{namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "interval": "", - "legendFormat": "archived ({{`{{pod}}`}})", - "refId": "A" - }, - { - "exemplar": true, - "expr": "rate(cnpg_pg_stat_archiver_failed_count{namespace=~\"$namespace\",pod=~\"$instances\"}[5m])", - "hide": false, - "interval": "", - "legendFormat": "failed ({{`{{pod}}`}})", - "refId": "B" - } - ], - "title": "Archiver Status [5m]", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 53 - }, - "id": 53, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_stat_archiver_seconds_since_last_archival{namespace=~\"$namespace\",pod=~\"$instances\"}", - "interval": "", - "legendFormat": "age ({{`{{pod}}`}})", - "refId": "A" - } - ], - "title": "Last Archive Age", - "type": "timeseries" - } - ], - "title": "Write Ahead Log", - "type": "row" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 15 - }, - "id": 18, - "panels": [ - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "line" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 600 - }, - { - "color": "dark-red", - "value": 3600 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 0, - "y": 6 - }, - "id": 16, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_replication_lag{namespace=~\"$namespace\",pod=~\"$instances\"}", - "instant": false, - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Replication Lag", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 6, - "y": 6 - }, - "id": 14, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_stat_replication_write_lag_seconds{namespace=~\"$namespace\",pod=~\"$cluster-.*\"}", - "instant": false, - "interval": "", - "legendFormat": "{{`{{pod}}`}} -> {{`{{application_name}}`}}", - "refId": "A" - } - ], - "title": "Write Lag", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 12, - "y": 6 - }, - "id": 59, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_stat_replication_flush_lag_seconds{namespace=~\"$namespace\",pod=~\"$cluster-.*\"}", - "instant": false, - "interval": "", - "legendFormat": "{{`{{pod}}`}} -> {{`{{application_name}}`}}", - "refId": "A" - } - ], - "title": "Flush Lag", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 18, - "y": 6 - }, - "id": 20, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_stat_replication_replay_lag_seconds{namespace=~\"$namespace\",pod=~\"$cluster-.*\"}", - "interval": "", - "legendFormat": "{{`{{pod}}`}} -> {{`{{application_name}}`}}", - "refId": "A" - } - ], - "title": "Replay Lag", - "type": "timeseries" - } - ], - "title": "Replication", - "type": "row" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 16 - }, - "id": 231, - "panels": [ - { - "cards": { - "cardPadding": null, - "cardRound": null - }, - "color": { - "cardColor": "#b4ff00", - "colorScale": "sqrt", - "colorScheme": "interpolateOranges", - "exponent": 0.5, - "mode": "spectrum" - }, - "dataFormat": "timeseries", - "datasource": "${DataSource}", - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 63 - }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 233, - "legend": { - "show": false - }, - "reverseYBuckets": false, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_collector_collection_duration_seconds{namespace=~\"$namespace\",pod=~\"$instances\"}", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Collection Duration", - "tooltip": { - "show": true, - "showHistogram": false - }, - "type": "heatmap", - "xAxis": { - "show": true - }, - "xBucketNumber": null, - "xBucketSize": null, - "yAxis": { - "decimals": null, - "format": "s", - "logBase": 1, - "max": null, - "min": null, - "show": true, - "splitFactor": null - }, - "yBucketBound": "auto", - "yBucketNumber": null, - "yBucketSize": null - }, - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 63 - }, - "id": 235, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_collector_last_collection_error{namespace=~\"$namespace\",pod=~\"$instances\"}", - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Errors", - "type": "timeseries" - } - ], - "title": "Collector Stats", - "type": "row" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 17 - }, - "id": 239, - "panels": [ - { - "datasource": "${DataSource}", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "dateTimeAsIso" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 0, - "y": 72 - }, - "id": 237, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single" - } - }, - "targets": [ - { - "exemplar": true, - "expr": "cnpg_collector_first_recoverability_point{namespace=~\"$namespace\",pod=~\"$instances\"}*1000 > 0", - "format": "time_series", - "interval": "", - "legendFormat": "{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "First Recoverability Point", - "type": "timeseries" - } - ], - "title": "Backups", - "type": "row" - }, - { - "collapsed": true, - "datasource": "${DataSource}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 18 - }, - "id": 293, - "panels": [ - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": -1, - "drawStyle": "line", - "fillOpacity": 8, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 0, - "y": 79 - }, - "id": 295, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "multi" - } - }, - "pluginVersion": "8.2.1", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_stat_bgwriter_checkpoints_req{namespace=~\"$namespace\",pod=~\"$instances\"}", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "req/{{`{{pod}}`}}", - "refId": "B" - }, - { - "exemplar": true, - "expr": "cnpg_pg_stat_bgwriter_checkpoints_timed{namespace=~\"$namespace\",pod=~\"$instances\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "timed/{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Requested/Timed", - "type": "timeseries" - }, - { - "datasource": "${DataSource}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": -1, - "drawStyle": "line", - "fillOpacity": 8, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 5, - "y": 79 - }, - "id": 296, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "multi" - } - }, - "pluginVersion": "8.2.1", - "targets": [ - { - "exemplar": true, - "expr": "cnpg_pg_stat_bgwriter_checkpoint_write_time{namespace=~\"$namespace\",pod=~\"$instances\"}", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "write/{{`{{pod}}`}}", - "refId": "B" - }, - { - "exemplar": true, - "expr": "cnpg_pg_stat_bgwriter_checkpoint_sync_time{namespace=~\"$namespace\",pod=~\"$instances\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "sync/{{`{{pod}}`}}", - "refId": "A" - } - ], - "title": "Write/Sync time", - "type": "timeseries" - } - ], - "title": "Checkpoints", - "type": "row" - } - ], - "refresh": "30s", - "schemaVersion": 31, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": "Data Source", - "multi": false, - "name": "DataSource", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "default", - "value": "default" - }, - "datasource": "${DataSource}", - "definition": "cnpg_collector_up", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "namespace", - "options": [], - "query": { - "query": "cnpg_collector_up", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "/namespace=\"(?[^\"]+)/g", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "cnp-sandbox", - "value": "cnp-sandbox" - }, - "datasource": "${DataSource}", - "definition": "cnpg_collector_up{namespace=~\"$namespace\"}", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "query": "cnpg_collector_up{namespace=~\"$namespace\"}", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "/cluster=\"(?[^\"]+)/g", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "allValue": null, - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "${DataSource}", - "definition": "cnpg_collector_up{namespace=~\"$namespace\",pod=~\"$cluster-.*\"}", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "name": "instances", - "options": [], - "query": { - "query": "cnpg_collector_up{namespace=~\"$namespace\",pod=~\"$cluster-.*\"}", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "/pod=\"(?[^\"]+)/g", - "skipUrlSync": false, - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-5m", - "to": "now" - }, - "timepicker": { - "nowDelay": "" - }, - "timezone": "", - "title": "CloudNativePG", - "uid": "z7FCA4Nnk", - "version": 2 - } -{{- end }} diff --git a/attic/templates/resources/dashboards/dotdc-grafana-dashboards-kubernetes.yaml b/attic/templates/resources/dashboards/dotdc-grafana-dashboards-kubernetes.yaml deleted file mode 100644 index b06e20bf..00000000 --- a/attic/templates/resources/dashboards/dotdc-grafana-dashboards-kubernetes.yaml +++ /dev/null @@ -1,21313 +0,0 @@ -apiVersion: v1 -data: - k8s-addons-prometheus.json: |- - { - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": [], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "8.5.0" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "This is a modern 'Prometheus' dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 89, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "refId": "A" - } - ], - "title": "Information", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "?", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "orange", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 0, - "y": 1 - }, - "id": 78, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "name" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "prometheus_build_info{pod=~\"$pod\", cluster=~\"$cluster\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{ version }}`}}", - "range": false, - "refId": "A" - } - ], - "title": "Prometheus version", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 6, - "y": 1 - }, - "id": 92, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "up{pod=~\"$pod\", cluster=~\"$cluster\"} < 1", - "instant": true, - "interval": "", - "legendFormat": "__auto", - "range": false, - "refId": "A" - } - ], - "title": "Instance Down", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 12, - "y": 1 - }, - "id": 72, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(prometheus_tsdb_head_series{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod)", - "interval": "", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "TSDB Head Series", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 18, - "y": 1 - }, - "id": 94, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(prometheus_sd_discovered_targets{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod)", - "instant": true, - "interval": "", - "legendFormat": "__auto", - "range": false, - "refId": "A" - } - ], - "title": "Discovered Targets", - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 64, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "refId": "A" - } - ], - "title": "Prometheus", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 6 - }, - "id": 93, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "up{pod=~\"$pod\", cluster=~\"$cluster\"}", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Liveness by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 6 - }, - "id": 96, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(prometheus_config_last_reload_successful{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Config - Last Successful Reload by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 74, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(prometheus_target_scrapes_exceeded_body_size_limit_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - Exceeded body size limit", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_target_scrapes_exceeded_sample_limit_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Exceeded sample limit", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_target_scrapes_sample_duplicate_timestamp_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Duplicate timestamp", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_target_scrapes_sample_out_of_bounds_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Sample out of bounds", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_target_scrapes_sample_out_of_order_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Sample out of order", - "range": true, - "refId": "E" - } - ], - "title": "Target Scrapes Errors by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 14 - }, - "id": 84, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(prometheus_sd_discovered_targets{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Number of Targets by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 22 - }, - "id": 75, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(prometheus_target_sync_length_seconds_sum{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod, scrape_job) * 1000", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - {{`{{ scrape_job }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Target Sync by pod, scrape_job", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 22 - }, - "id": 85, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "round(sum(rate(prometheus_target_interval_length_seconds_sum{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval]) / rate(prometheus_target_interval_length_seconds_count{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod))", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Average Scrape Interval by pod", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 30 - }, - "id": 98, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "refId": "A" - } - ], - "title": "Prometheus TSDB / Query Engine", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 31 - }, - "id": 59, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(prometheus_tsdb_head_series{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - Head Series", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(prometheus_tsdb_head_chunks{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Head Chunks", - "range": true, - "refId": "B" - } - ], - "title": "TSDB Head Series & Chunks by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 31 - }, - "id": 60, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(prometheus_tsdb_head_samples_appended_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "TSDB Head samples appended - rate by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 39 - }, - "id": 101, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(prometheus_tsdb_blocks_loaded{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - Head Series", - "range": true, - "refId": "A" - } - ], - "title": "TSDB Blocks Loaded by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 39 - }, - "id": 102, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(prometheus_tsdb_compactions_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - Total Compactions", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_tsdb_compactions_triggered_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Triggered Compactions", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_tsdb_compactions_skipped_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Skipped Compactions", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_tsdb_compactions_failed_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Failed Compactions", - "range": true, - "refId": "D" - } - ], - "title": "TSDB Rate of Compactions by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 47 - }, - "id": 90, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(prometheus_tsdb_reloads_failures_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "TSDB Reload Failures by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 47 - }, - "id": 95, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(prometheus_tsdb_head_series_created_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - Created series", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(prometheus_tsdb_head_series_removed_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "hide": false, - "legendFormat": "{{`{{ pod }}`}} - Deleted series", - "range": true, - "refId": "B" - } - ], - "title": "TSDB Created & Deleted series by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 55 - }, - "id": 73, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(prometheus_engine_query_duration_seconds_count{pod=~\"$pod\", slice=\"inner_eval\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Engine Query Count by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 55 - }, - "id": 86, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "max(prometheus_engine_query_duration_seconds{pod=~\"$pod\", cluster=~\"$cluster\"}) by (pod, slice) * 1000", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - {{`{{ slice }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Engine Query Duration by pod, slice", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 63 - }, - "id": 47, - "panels": [], - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "refId": "A" - } - ], - "title": "Resources", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU Cores", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 4, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "limit" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#F2495C", - "mode": "fixed" - } - }, - { - "id": "custom.fillOpacity", - "value": 0 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 64 - }, - "id": 29, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_usage_seconds_total{pod=~\"$pod\", image!=\"\", container!=\"\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod, container)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - {{`{{ container }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU Usage by pod, container", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Bytes", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 64 - }, - "id": 51, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{pod=~\"$pod\", image!=\"\", container!=\"\", cluster=~\"$cluster\"}) by (pod, container)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}} - {{`{{ container }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Memory Usage by container", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 72 - }, - "id": 66, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "refId": "A" - } - ], - "title": "Storage", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 73 - }, - "id": 62, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kubelet_volume_stats_used_bytes{persistentvolumeclaim=~\".*prom.*\", cluster=~\"$cluster\"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_capacity_bytes{persistentvolumeclaim=~\".*prom.*\", cluster=~\"$cluster\"}) by (persistentvolumeclaim)", - "interval": "", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Persistent Volumes - Capacity and usage in %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 73 - }, - "id": 87, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kubelet_volume_stats_used_bytes{persistentvolumeclaim=~\".*prom.*\", cluster=~\"$cluster\"}) by (persistentvolumeclaim)", - "interval": "", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}} - Used", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kubelet_volume_stats_capacity_bytes{persistentvolumeclaim=~\".*prom.*\", cluster=~\"$cluster\"}) by (persistentvolumeclaim)", - "hide": false, - "legendFormat": "{{`{{ persistentvolumeclaim }}`}} - Capacity", - "range": true, - "refId": "B" - } - ], - "title": "Persistent Volumes - Capacity and usage in bytes", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 81 - }, - "id": 68, - "links": [], - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "1 - sum(kubelet_volume_stats_inodes_used{persistentvolumeclaim=~\".*prom.*\", cluster=~\"$cluster\"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_inodes{persistentvolumeclaim=~\".*prom.*\", cluster=~\"$cluster\"}) by (persistentvolumeclaim)", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{ persistentvolumeclaim }}`}}", - "range": true, - "refId": "A", - "step": 240 - } - ], - "title": "Persistent Volumes - Inodes", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 89 - }, - "id": 45, - "panels": [], - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "refId": "A" - } - ], - "title": "Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 90 - }, - "id": 31, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_network_receive_bytes_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Received", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_bytes_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Transmitted", - "range": true, - "refId": "B" - } - ], - "title": "Network - Bandwidth by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "pps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 90 - }, - "id": 34, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_network_receive_packets_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Received", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_packets_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Transmitted", - "range": true, - "refId": "B" - } - ], - "title": "Network - Packets rate by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "pps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 98 - }, - "id": 36, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_network_receive_packets_dropped_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Received", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_packets_dropped_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Transmitted", - "range": true, - "refId": "B" - } - ], - "title": "Network - Packets Dropped by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "pps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 98 - }, - "id": 37, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_network_receive_errors_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Received", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_errors_total{pod=~\"$pod\", cluster=~\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}} - Transmitted", - "range": true, - "refId": "B" - } - ], - "title": "Network - Errors by pod", - "type": "timeseries" - } - ], - "refresh": "30s", - "revision": 1, - "schemaVersion": 38, - "style": "dark", - "tags": [ - "Kubernetes", - "Prometheus" - ], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "isNone": true, - "selected": false, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info,cluster)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_node_info,cluster)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(prometheus_build_info{cluster=\"$cluster\"}, pod)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "pod", - "options": [], - "query": { - "query": "label_values(prometheus_build_info{cluster=\"$cluster\"}, pod)", - "refId": "StandardVariableQuery" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "resolution", - "options": [ - { - "selected": false, - "text": "1s", - "value": "1s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - } - ], - "query": "1s, 15s, 30s, 1m, 3m, 5m", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Prometheus", - "uid": "k8s_addons_prometheus", - "version": 3, - "weekStart": "" - } -kind: ConfigMap -metadata: - annotations: - grafana_folder: Kubernetes - labels: - grafana_dashboard: "1" - name: dashboards-k8s-addons-prometheus - namespace: prometheus ---- -#apiVersion: v1 -#data: -# k8s-addons-trivy-operator.json: | -# { -# "__inputs": [ -# { -# "name": "DS_PROMETHEUS", -# "label": "Prometheus", -# "description": "", -# "type": "datasource", -# "pluginId": "prometheus", -# "pluginName": "Prometheus" -# } -# ], -# "__elements": [], -# "__requires": [ -# { -# "type": "grafana", -# "id": "grafana", -# "name": "Grafana", -# "version": "8.5.0" -# }, -# { -# "type": "datasource", -# "id": "prometheus", -# "name": "Prometheus", -# "version": "5.0.0" -# }, -# { -# "type": "panel", -# "id": "timeseries", -# "name": "Time series", -# "version": "" -# }, -# { -# "type": "panel", -# "id": "stat", -# "name": "Stat", -# "version": "" -# }, -# { -# "type": "panel", -# "id": "table", -# "name": "Table", -# "version": "" -# } -# ], -# "annotations": { -# "list": [ -# { -# "builtIn": 1, -# "datasource": { -# "type": "datasource", -# "uid": "grafana" -# }, -# "enable": true, -# "hide": true, -# "iconColor": "rgba(0, 211, 255, 1)", -# "name": "Annotations & Alerts", -# "target": { -# "limit": 100, -# "matchAny": false, -# "tags": [], -# "type": "dashboard" -# }, -# "type": "dashboard" -# } -# ] -# }, -# "description": "This is a modern dashboard for the Trivy Operator from Aqua Security. Made to take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", -# "editable": true, -# "fiscalYearStartMonth": 0, -# "graphTooltip": 1, -# "links": [], -# "liveNow": false, -# "panels": [ -# { -# "collapsed": false, -# "datasource": { -# "type": "datasource", -# "uid": "grafana" -# }, -# "gridPos": { -# "h": 1, -# "w": 24, -# "x": 0, -# "y": 0 -# }, -# "id": 43, -# "panels": [], -# "title": "Vulnerabilities", -# "type": "row" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "red", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 0, -# "y": 1 -# }, -# "id": 51, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{severity=\"Critical\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "CRITICAL", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "orange", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 4, -# "y": 1 -# }, -# "id": 50, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{severity=\"High\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "HIGH", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "yellow", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 8, -# "y": 1 -# }, -# "id": 49, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{severity=\"Medium\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "MEDIUM", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 12, -# "y": 1 -# }, -# "id": 60, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{severity=\"Low\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "LOW", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "purple", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 16, -# "y": 1 -# }, -# "id": 52, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{severity=\"Unknown\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "UNKNOWN", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "text", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 20, -# "y": 1 -# }, -# "id": 39, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "TOTAL", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "palette-classic" -# }, -# "custom": { -# "axisCenteredZero": false, -# "axisColorMode": "text", -# "axisLabel": "", -# "axisPlacement": "auto", -# "barAlignment": 0, -# "drawStyle": "line", -# "fillOpacity": 15, -# "gradientMode": "opacity", -# "hideFrom": { -# "legend": false, -# "tooltip": false, -# "viz": false -# }, -# "lineInterpolation": "linear", -# "lineWidth": 2, -# "pointSize": 5, -# "scaleDistribution": { -# "type": "linear" -# }, -# "showPoints": "never", -# "spanNulls": false, -# "stacking": { -# "group": "A", -# "mode": "none" -# }, -# "thresholdsStyle": { -# "mode": "off" -# } -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 8, -# "w": 12, -# "x": 0, -# "y": 5 -# }, -# "id": 58, -# "options": { -# "legend": { -# "calcs": [], -# "displayMode": "table", -# "placement": "right", -# "showLegend": true -# }, -# "tooltip": { -# "mode": "single", -# "sort": "none" -# } -# }, -# "pluginVersion": "8.5.0", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{cluster=~\"$cluster\"}) by (namespace)", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "{{`{{namespace}}`}}", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Total vulnerabilities by namespaces", -# "type": "timeseries" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "palette-classic" -# }, -# "custom": { -# "axisCenteredZero": false, -# "axisColorMode": "text", -# "axisLabel": "", -# "axisPlacement": "auto", -# "barAlignment": 0, -# "drawStyle": "line", -# "fillOpacity": 15, -# "gradientMode": "opacity", -# "hideFrom": { -# "legend": false, -# "tooltip": false, -# "viz": false -# }, -# "lineInterpolation": "linear", -# "lineWidth": 2, -# "pointSize": 5, -# "scaleDistribution": { -# "type": "linear" -# }, -# "showPoints": "never", -# "spanNulls": false, -# "stacking": { -# "group": "A", -# "mode": "none" -# }, -# "thresholdsStyle": { -# "mode": "off" -# } -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [ -# { -# "matcher": { -# "id": "byName", -# "options": "Critical" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "red", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "High" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "orange", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "Medium" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "yellow", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "Low" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "blue", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "Unknown" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "purple", -# "mode": "fixed" -# } -# } -# ] -# } -# ] -# }, -# "gridPos": { -# "h": 8, -# "w": 12, -# "x": 12, -# "y": 5 -# }, -# "id": 61, -# "options": { -# "legend": { -# "calcs": [], -# "displayMode": "table", -# "placement": "right", -# "showLegend": true -# }, -# "tooltip": { -# "mode": "multi", -# "sort": "desc" -# } -# }, -# "pluginVersion": "8.5.0", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{cluster=~\"$cluster\"}) by (severity)", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Total vulnerabilities by severity", -# "type": "timeseries" -# }, -# { -# "collapsed": false, -# "gridPos": { -# "h": 1, -# "w": 24, -# "x": 0, -# "y": 13 -# }, -# "id": 85, -# "panels": [], -# "title": "Vulnerability Details", -# "type": "row" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "description": "", -# "fieldConfig": { -# "defaults": { -# "custom": { -# "align": "auto", -# "displayMode": "auto", -# "filterable": true, -# "inspect": false -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "orange", -# "value": 80 -# } -# ] -# } -# }, -# "overrides": [ -# { -# "matcher": { -# "id": "byName", -# "options": "severity" -# }, -# "properties": [ -# { -# "id": "mappings", -# "value": [ -# { -# "options": { -# "Critical": { -# "color": "red", -# "index": 0 -# }, -# "High": { -# "color": "orange", -# "index": 1 -# }, -# "Low": { -# "color": "blue", -# "index": 3 -# }, -# "Medium": { -# "color": "yellow", -# "index": 2 -# }, -# "Unknown": { -# "color": "purple", -# "index": 4 -# } -# }, -# "type": "value" -# } -# ] -# }, -# { -# "id": "custom.displayMode", -# "value": "color-text" -# } -# ] -# } -# ] -# }, -# "gridPos": { -# "h": 12, -# "w": 24, -# "x": 0, -# "y": 14 -# }, -# "id": 83, -# "options": { -# "footer": { -# "enablePagination": true, -# "fields": [ -# "Value" -# ], -# "reducer": [ -# "sum" -# ], -# "show": false -# }, -# "showHeader": true, -# "sortBy": [] -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_vulnerabilities{namespace=~\"$namespace\", cluster=~\"$cluster\"}) by (namespace, image_registry, image_repository, image_tag, severity) > 0", -# "format": "table", -# "instant": false, -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Vulnerability count per image and severity in $namespace namespace(s)", -# "transformations": [ -# { -# "id": "organize", -# "options": { -# "excludeByName": { -# "Time": true, -# "Value": false -# }, -# "indexByName": { -# "Time": 0, -# "Value": 6, -# "image_registry": 2, -# "image_repository": 3, -# "image_tag": 4, -# "namespace": 1, -# "severity": 5 -# }, -# "renameByName": { -# "Value": "Nb of vulnerabilities", -# "image_registry": "Image Registry", -# "image_repository": "Image Repository", -# "image_tag": "Image Tag", -# "namespace": "Namespace", -# "severity": "Severity" -# } -# } -# }, -# { -# "id": "groupBy", -# "options": { -# "fields": { -# "All values": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Count": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Image Registry": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Image Repository": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Image Tag": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Namespace": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Nb of vulnerabilities": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Severity": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Value": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "image_registry": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "image_repository": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "image_tag": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "namespace": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "severity": { -# "aggregations": [], -# "operation": "groupby" -# } -# } -# } -# } -# ], -# "type": "table" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "description": "Require operator.metricsVulnIdEnabled: true", -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "custom": { -# "align": "auto", -# "displayMode": "auto", -# "filterable": true, -# "inspect": false -# }, -# "links": [], -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [ -# { -# "matcher": { -# "id": "byName", -# "options": "severity" -# }, -# "properties": [ -# { -# "id": "mappings", -# "value": [ -# { -# "options": { -# "Critical": { -# "color": "red", -# "index": 0 -# }, -# "High": { -# "color": "orange", -# "index": 1 -# }, -# "Low": { -# "color": "blue", -# "index": 3 -# }, -# "Medium": { -# "color": "yellow", -# "index": 2 -# }, -# "Unknown": { -# "color": "purple", -# "index": 4 -# } -# }, -# "type": "value" -# } -# ] -# }, -# { -# "id": "custom.displayMode", -# "value": "color-text" -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "vuln_id" -# }, -# "properties": [ -# { -# "id": "links", -# "value": [ -# { -# "targetBlank": true, -# "title": "https://nvd.nist.gov/vuln/detail/${__value.text}", -# "url": "https://nvd.nist.gov/vuln/detail/${__value.text}" -# } -# ] -# } -# ] -# } -# ] -# }, -# "gridPos": { -# "h": 12, -# "w": 24, -# "x": 0, -# "y": 26 -# }, -# "id": 78, -# "options": { -# "footer": { -# "enablePagination": true, -# "fields": "", -# "reducer": [ -# "sum" -# ], -# "show": false -# }, -# "showHeader": true, -# "sortBy": [] -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_vulnerability_id{vuln_id=~\"CVE.*\", namespace=~\"$namespace\", cluster=~\"$cluster\"}) by (namespace, image_registry, image_repository, image_tag, vuln_id, severity)", -# "format": "table", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Detaillled CVE vulnerabilities in $namespace namespace(s)", -# "transformations": [ -# { -# "id": "organize", -# "options": { -# "excludeByName": { -# "Time": true, -# "Value": true, -# "__name__": true, -# "container": true, -# "endpoint": true, -# "instance": true, -# "job": true, -# "namespace": false, -# "service": true -# }, -# "indexByName": { -# "Time": 0, -# "Value": 7, -# "image_registry": 2, -# "image_repository": 3, -# "image_tag": 4, -# "namespace": 1, -# "severity": 6, -# "vuln_id": 5 -# }, -# "renameByName": { -# "image_namespace": "namespace", -# "image_registry": "Image Registry", -# "image_repository": "Image Repository", -# "image_tag": "Image Tag", -# "namespace": "Namespace", -# "severity": "Severity", -# "vuln_id": "Vulnerability", -# "vulnerability_id": "" -# } -# } -# }, -# { -# "id": "groupBy", -# "options": { -# "fields": { -# "Image Registry": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Image Repository": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Image Tag": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Namespace": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Severity": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "Value": { -# "aggregations": [ -# "lastNotNull" -# ] -# }, -# "Vulnerability": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "image_namespace": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "namespace": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "severity": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "vuln_id": { -# "aggregations": [], -# "operation": "groupby" -# }, -# "vulnerability_id": { -# "aggregations": [], -# "operation": "groupby" -# } -# } -# } -# } -# ], -# "type": "table" -# }, -# { -# "collapsed": false, -# "datasource": { -# "type": "datasource", -# "uid": "grafana" -# }, -# "gridPos": { -# "h": 1, -# "w": 24, -# "x": 0, -# "y": 38 -# }, -# "id": 47, -# "panels": [], -# "title": "Config Audit Reports", -# "type": "row" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "red", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 0, -# "y": 39 -# }, -# "id": 56, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_resource_configaudits{severity=\"Critical\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "CRITICAL", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "orange", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 4, -# "y": 39 -# }, -# "id": 55, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_resource_configaudits{severity=\"High\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "HIGH", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "yellow", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 8, -# "y": 39 -# }, -# "id": 54, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_resource_configaudits{severity=\"Medium\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "MEDIUM", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 12, -# "y": 39 -# }, -# "id": 53, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_resource_configaudits{severity=\"Low\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "LOW", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "text", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 16, -# "y": 39 -# }, -# "id": 65, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_resource_configaudits{namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "TOTAL", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "palette-classic" -# }, -# "custom": { -# "axisCenteredZero": false, -# "axisColorMode": "text", -# "axisLabel": "", -# "axisPlacement": "auto", -# "barAlignment": 0, -# "drawStyle": "line", -# "fillOpacity": 15, -# "gradientMode": "opacity", -# "hideFrom": { -# "legend": false, -# "tooltip": false, -# "viz": false -# }, -# "lineInterpolation": "linear", -# "lineWidth": 2, -# "pointSize": 5, -# "scaleDistribution": { -# "type": "linear" -# }, -# "showPoints": "never", -# "spanNulls": false, -# "stacking": { -# "group": "A", -# "mode": "none" -# }, -# "thresholdsStyle": { -# "mode": "off" -# } -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 8, -# "w": 12, -# "x": 0, -# "y": 43 -# }, -# "id": 62, -# "options": { -# "legend": { -# "calcs": [], -# "displayMode": "table", -# "placement": "right", -# "showLegend": true -# }, -# "tooltip": { -# "mode": "single", -# "sort": "none" -# } -# }, -# "pluginVersion": "8.5.0", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_resource_configaudits{cluster=~\"$cluster\"}) by (namespace)", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Total config audit report by namespaces", -# "type": "timeseries" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "palette-classic" -# }, -# "custom": { -# "axisCenteredZero": false, -# "axisColorMode": "text", -# "axisLabel": "", -# "axisPlacement": "auto", -# "barAlignment": 0, -# "drawStyle": "line", -# "fillOpacity": 15, -# "gradientMode": "opacity", -# "hideFrom": { -# "legend": false, -# "tooltip": false, -# "viz": false -# }, -# "lineInterpolation": "linear", -# "lineWidth": 2, -# "pointSize": 5, -# "scaleDistribution": { -# "type": "linear" -# }, -# "showPoints": "never", -# "spanNulls": false, -# "stacking": { -# "group": "A", -# "mode": "none" -# }, -# "thresholdsStyle": { -# "mode": "off" -# } -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [ -# { -# "matcher": { -# "id": "byName", -# "options": "Critical" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "red", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "High" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "orange", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "Medium" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "yellow", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "Low" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "blue", -# "mode": "fixed" -# } -# } -# ] -# } -# ] -# }, -# "gridPos": { -# "h": 8, -# "w": 12, -# "x": 12, -# "y": 43 -# }, -# "id": 63, -# "options": { -# "legend": { -# "calcs": [], -# "displayMode": "table", -# "placement": "right", -# "showLegend": true -# }, -# "tooltip": { -# "mode": "multi", -# "sort": "desc" -# } -# }, -# "pluginVersion": "8.5.0", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_resource_configaudits{cluster=~\"$cluster\"}) by (severity)", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Total config audit report by severity", -# "type": "timeseries" -# }, -# { -# "collapsed": false, -# "gridPos": { -# "h": 1, -# "w": 24, -# "x": 0, -# "y": 51 -# }, -# "id": 68, -# "panels": [], -# "title": "RBAC Assessments", -# "type": "row" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "red", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 0, -# "y": 52 -# }, -# "id": 72, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_role_rbacassessments{severity=\"Critical\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "CRITICAL", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "orange", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 4, -# "y": 52 -# }, -# "id": 71, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_role_rbacassessments{severity=\"High\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "HIGH", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "yellow", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 8, -# "y": 52 -# }, -# "id": 70, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_role_rbacassessments{severity=\"Medium\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "MEDIUM", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 12, -# "y": 52 -# }, -# "id": 69, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_role_rbacassessments{severity=\"Low\", namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "LOW", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "thresholds" -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "text", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 4, -# "w": 4, -# "x": 16, -# "y": 52 -# }, -# "id": 73, -# "options": { -# "colorMode": "value", -# "graphMode": "area", -# "justifyMode": "auto", -# "orientation": "auto", -# "reduceOptions": { -# "calcs": [ -# "last" -# ], -# "fields": "", -# "values": false -# }, -# "textMode": "auto" -# }, -# "pluginVersion": "9.3.8", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_role_rbacassessments{namespace=~\"$namespace\", cluster=~\"$cluster\"})", -# "instant": true, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "refId": "A" -# } -# ], -# "title": "TOTAL", -# "type": "stat" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "palette-classic" -# }, -# "custom": { -# "axisCenteredZero": false, -# "axisColorMode": "text", -# "axisLabel": "", -# "axisPlacement": "auto", -# "barAlignment": 0, -# "drawStyle": "line", -# "fillOpacity": 15, -# "gradientMode": "opacity", -# "hideFrom": { -# "legend": false, -# "tooltip": false, -# "viz": false -# }, -# "lineInterpolation": "linear", -# "lineWidth": 2, -# "pointSize": 5, -# "scaleDistribution": { -# "type": "linear" -# }, -# "showPoints": "never", -# "spanNulls": false, -# "stacking": { -# "group": "A", -# "mode": "none" -# }, -# "thresholdsStyle": { -# "mode": "off" -# } -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 8, -# "w": 12, -# "x": 0, -# "y": 56 -# }, -# "id": 74, -# "options": { -# "legend": { -# "calcs": [], -# "displayMode": "table", -# "placement": "right", -# "showLegend": true -# }, -# "tooltip": { -# "mode": "single", -# "sort": "none" -# } -# }, -# "pluginVersion": "8.5.0", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_role_rbacassessments{cluster=~\"$cluster\"}) by (namespace)", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Total RBAC Assessments by namespaces", -# "type": "timeseries" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "palette-classic" -# }, -# "custom": { -# "axisCenteredZero": false, -# "axisColorMode": "text", -# "axisLabel": "", -# "axisPlacement": "auto", -# "barAlignment": 0, -# "drawStyle": "line", -# "fillOpacity": 15, -# "gradientMode": "opacity", -# "hideFrom": { -# "legend": false, -# "tooltip": false, -# "viz": false -# }, -# "lineInterpolation": "linear", -# "lineWidth": 2, -# "pointSize": 5, -# "scaleDistribution": { -# "type": "linear" -# }, -# "showPoints": "never", -# "spanNulls": false, -# "stacking": { -# "group": "A", -# "mode": "none" -# }, -# "thresholdsStyle": { -# "mode": "off" -# } -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [ -# { -# "matcher": { -# "id": "byName", -# "options": "Critical" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "red", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "High" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "orange", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "Medium" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "yellow", -# "mode": "fixed" -# } -# } -# ] -# }, -# { -# "matcher": { -# "id": "byName", -# "options": "Low" -# }, -# "properties": [ -# { -# "id": "color", -# "value": { -# "fixedColor": "blue", -# "mode": "fixed" -# } -# } -# ] -# } -# ] -# }, -# "gridPos": { -# "h": 8, -# "w": 12, -# "x": 12, -# "y": 56 -# }, -# "id": 75, -# "options": { -# "legend": { -# "calcs": [], -# "displayMode": "table", -# "placement": "right", -# "showLegend": true -# }, -# "tooltip": { -# "mode": "multi", -# "sort": "desc" -# } -# }, -# "pluginVersion": "8.5.0", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_role_rbacassessments{cluster=~\"$cluster\"}) by (severity)", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Total RBAC Assessments by severity", -# "type": "timeseries" -# }, -# { -# "collapsed": false, -# "gridPos": { -# "h": 1, -# "w": 24, -# "x": 0, -# "y": 64 -# }, -# "id": 81, -# "panels": [], -# "title": "Exposed Secrets", -# "type": "row" -# }, -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "fieldConfig": { -# "defaults": { -# "color": { -# "mode": "palette-classic" -# }, -# "custom": { -# "axisCenteredZero": false, -# "axisColorMode": "text", -# "axisLabel": "", -# "axisPlacement": "auto", -# "barAlignment": 0, -# "drawStyle": "line", -# "fillOpacity": 15, -# "gradientMode": "opacity", -# "hideFrom": { -# "legend": false, -# "tooltip": false, -# "viz": false -# }, -# "lineInterpolation": "linear", -# "lineWidth": 2, -# "pointSize": 5, -# "scaleDistribution": { -# "type": "linear" -# }, -# "showPoints": "never", -# "spanNulls": false, -# "stacking": { -# "group": "A", -# "mode": "none" -# }, -# "thresholdsStyle": { -# "mode": "off" -# } -# }, -# "mappings": [], -# "thresholds": { -# "mode": "absolute", -# "steps": [ -# { -# "color": "green", -# "value": null -# }, -# { -# "color": "blue", -# "value": 1 -# } -# ] -# }, -# "unit": "none" -# }, -# "overrides": [] -# }, -# "gridPos": { -# "h": 8, -# "w": 24, -# "x": 0, -# "y": 65 -# }, -# "id": 76, -# "options": { -# "legend": { -# "calcs": [], -# "displayMode": "table", -# "placement": "right", -# "showLegend": true -# }, -# "tooltip": { -# "mode": "single", -# "sort": "none" -# } -# }, -# "pluginVersion": "8.5.0", -# "targets": [ -# { -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "editorMode": "code", -# "exemplar": false, -# "expr": "sum(trivy_image_exposedsecrets{cluster=~\"$cluster\"}) by (namespace)", -# "instant": false, -# "interval": "$resolution", -# "legendFormat": "__auto", -# "range": true, -# "refId": "A" -# } -# ], -# "title": "Total Exposed Secrets by namespaces", -# "type": "timeseries" -# } -# ], -# "refresh": "30s", -# "schemaVersion": 37, -# "style": "dark", -# "tags": [ -# "Prometheus", -# "Addons", -# "Trivy", -# "Trivy-operator" -# ], -# "templating": { -# "list": [ -# { -# "current": { -# "selected": false, -# "text": "Prometheus", -# "value": "Prometheus" -# }, -# "hide": 0, -# "includeAll": false, -# "multi": false, -# "name": "datasource", -# "options": [], -# "query": "prometheus", -# "queryValue": "", -# "refresh": 1, -# "regex": "", -# "skipUrlSync": false, -# "type": "datasource" -# }, -# { -# "current": { -# "isNone": true, -# "selected": false, -# "text": "None", -# "value": "" -# }, -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "definition": "label_values(kube_node_info,cluster)", -# "hide": 0, -# "includeAll": false, -# "multi": false, -# "name": "cluster", -# "options": [], -# "query": { -# "qryType": 1, -# "query": "label_values(kube_node_info,cluster)", -# "refId": "PrometheusVariableQueryEditor-VariableQuery" -# }, -# "refresh": 1, -# "regex": "", -# "skipUrlSync": false, -# "sort": 1, -# "type": "query" -# }, -# { -# "current": { -# "selected": true, -# "text": [ -# "All" -# ], -# "value": [ -# "$__all" -# ] -# }, -# "datasource": { -# "type": "prometheus", -# "uid": "${datasource}" -# }, -# "definition": "label_values(kube_pod_info{cluster=\"$cluster\"}, namespace)", -# "hide": 0, -# "includeAll": true, -# "multi": true, -# "name": "namespace", -# "options": [], -# "query": { -# "query": "label_values(kube_pod_info{cluster=\"$cluster\"}, namespace)", -# "refId": "StandardVariableQuery" -# }, -# "refresh": 1, -# "regex": "", -# "skipUrlSync": false, -# "sort": 1, -# "type": "query" -# }, -# { -# "current": { -# "selected": true, -# "text": "30s", -# "value": "30s" -# }, -# "hide": 0, -# "includeAll": false, -# "multi": false, -# "name": "resolution", -# "options": [ -# { -# "selected": false, -# "text": "1s", -# "value": "1s" -# }, -# { -# "selected": false, -# "text": "15s", -# "value": "15s" -# }, -# { -# "selected": true, -# "text": "30s", -# "value": "30s" -# }, -# { -# "selected": false, -# "text": "1m", -# "value": "1m" -# }, -# { -# "selected": false, -# "text": "3m", -# "value": "3m" -# }, -# { -# "selected": false, -# "text": "5m", -# "value": "5m" -# } -# ], -# "query": "1s, 15s, 30s, 1m, 3m, 5m", -# "queryValue": "", -# "skipUrlSync": false, -# "type": "custom" -# } -# ] -# }, -# "time": { -# "from": "now-1h", -# "to": "now" -# }, -# "timepicker": {}, -# "timezone": "", -# "title": "Trivy Operator - Vulnerabilities", -# "uid": "security_trivy_operator", -# "version": 12, -# "weekStart": "" -# } -#kind: ConfigMap -#metadata: -# annotations: -# grafana_folder: Kubernetes -# labels: -# grafana_dashboard: "1" -# name: dashboards-k8s-addons-trivy-operator -# namespace: prometheus ---- -apiVersion: v1 -data: - k8s-system-api-server.json: | - { - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": [], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "8.4.4" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "This is a modern API Server dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "0": { - "text": "DOWN" - }, - "1": { - "text": "UP" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 0 - }, - "id": 42, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "value_and_name" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "up{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}", - "interval": "", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "API Server - Health Status", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "__name__" - }, - "properties": [ - { - "id": "custom.width", - "value": 188 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 - }, - "id": 60, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": false, - "displayName": "removed_release" - } - ] - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "apiserver_requested_deprecated_apis{cluster=~\"$cluster\"}", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Deprecated Kubernetes Resources", - "transformations": [ - { - "id": "labelsToFields", - "options": { - "keepLabels": [ - "group", - "job", - "removed_release", - "resource", - "version", - "name" - ], - "mode": "columns" - } - }, - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true, - "job": true - }, - "indexByName": { - "Time": 6, - "Value": 7, - "group": 1, - "job": 5, - "namespace": 0, - "removed_release": 4, - "resource": 3, - "version": 2 - }, - "renameByName": {} - } - }, - { - "id": "groupBy", - "options": { - "fields": { - "group": { - "aggregations": [ - "lastNotNull" - ], - "operation": "groupby" - }, - "job": { - "aggregations": [], - "operation": "groupby" - }, - "namespace": { - "aggregations": [ - "lastNotNull" - ], - "operation": "groupby" - }, - "removed_release": { - "aggregations": [], - "operation": "groupby" - }, - "resource": { - "aggregations": [ - "lastNotNull" - ], - "operation": "groupby" - }, - "version": { - "aggregations": [], - "operation": "groupby" - } - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 38, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum by (code) (rate(apiserver_request_total{cluster=~\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "{{`{{ code }}`}}", - "refId": "A" - } - ], - "title": "API Server - HTTP Requests by code", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 8 - }, - "id": 39, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum by (verb) (rate(apiserver_request_total{cluster=~\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "{{`{{ verb}}`}}", - "refId": "A" - } - ], - "title": "API Server - HTTP Requests by verb", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 53, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(apiserver_request_duration_seconds_sum{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval])) by (instance)\n/\nsum(rate(apiserver_request_duration_seconds_count{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval])) by (instance)", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "API Server - HTTP Requests Latency by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 54, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(apiserver_request_duration_seconds_sum{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval])) by (verb)\n/\nsum(rate(apiserver_request_duration_seconds_count{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval])) by (verb)", - "interval": "$resolution", - "legendFormat": "{{`{{ verb }}`}}", - "refId": "A" - } - ], - "title": "API Server - HTTP Requests Latency by verb", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 24 - }, - "id": 50, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum by(instance) (rate(apiserver_request_total{code=~\"5..\", job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval]))\n / sum by(instance) (rate(apiserver_request_total{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "API Server - Errors by Instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 24 - }, - "id": 51, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum by(verb) (rate(apiserver_request_total{code=~\"5..\",job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval]))\n / sum by(verb) (rate(apiserver_request_total{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "{{`{{ verb }}`}}", - "refId": "A" - } - ], - "title": "API Server - Errors by verb", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 32 - }, - "id": 40, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(apiserver_request_total{cluster=~\"$cluster\"}[$__rate_interval])) by (instance)", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "API Server - Stacked HTTP Requests by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 32 - }, - "id": 56, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(workqueue_depth{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval])) by (instance)", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "API Server - Work Queue by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 40 - }, - "id": 47, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "rate(process_cpu_seconds_total{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}[$__rate_interval])", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "API Server - CPU Usage by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 40 - }, - "id": 48, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "process_resident_memory_bytes{job=~\"kubernetes-apiservers|apiserver\", cluster=~\"$cluster\"}", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "API Server - Memory Usage by instance", - "type": "timeseries" - } - ], - "refresh": "30s", - "schemaVersion": 38, - "style": "dark", - "tags": [ - "Kubernetes", - "Prometheus" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 0, - "includeAll": false, - "label": "", - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "isNone": true, - "selected": false, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info,cluster)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_node_info,cluster)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "resolution", - "options": [ - { - "selected": false, - "text": "1s", - "value": "1s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - } - ], - "query": "1s, 15s, 30s, 1m, 3m, 5m", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Kubernetes / System / API Server", - "uid": "k8s_system_apisrv", - "version": 17, - "weekStart": "" - } -kind: ConfigMap -metadata: - annotations: - grafana_folder: Kubernetes - labels: - grafana_dashboard: "1" - name: dashboards-k8s-system-api-server - namespace: prometheus ---- -apiVersion: v1 -data: - k8s-system-coredns.json: | - { - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": [], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "8.4.4" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "This is a modern CoreDNS dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "0": { - "text": "DOWN" - }, - "1": { - "text": "UP" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "green", - "value": 1 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 25, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "value_and_name", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "up{job=~\"$job\", instance=~\"$instance\", cluster=~\"$cluster\"}", - "interval": "", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "CoreDNS - Health Status", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 3 - }, - "id": 19, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "rate(process_cpu_seconds_total{job=~\"$job\", instance=~\"$instance\", cluster=~\"$cluster\"}[$__rate_interval])", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "CoreDNS - CPU Usage by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 3 - }, - "id": 21, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "process_resident_memory_bytes{job=~\"$job\", instance=~\"$instance\", cluster=~\"$cluster\"}", - "interval": "", - "legendFormat": "{{`{{ instance }}`}}", - "refId": "A" - } - ], - "title": "CoreDNS - Memory Usage by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 11 - }, - "id": 9, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_dns_requests_total{instance=~\"$instance\",proto=\"$protocol\", cluster=~\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "total $protocol requests", - "refId": "A" - } - ], - "title": "CoreDNS - Total DNS Requests ($protocol)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 11 - }, - "id": 7, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_dns_request_size_bytes_sum{instance=~\"$instance\",proto=\"$protocol\", cluster=~\"$cluster\"}[$__rate_interval])) by (proto) / sum(rate(coredns_dns_request_size_bytes_count{instance=~\"$instance\",proto=\"$protocol\", cluster=~\"$cluster\"}[$__rate_interval])) by (proto)", - "interval": "$resolution", - "legendFormat": "average $protocol packet size", - "refId": "A" - } - ], - "title": "CoreDNS - Average Packet Size ($protocol)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 19 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_dns_requests_total{instance=~\"$instance\", cluster=~\"$cluster\"}[$__rate_interval])) by (type)", - "interval": "$resolution", - "legendFormat": "{{`{{ type }}`}}", - "refId": "A" - } - ], - "title": "CoreDNS - Requests by type", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 19 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_dns_responses_total{instance=~\"$instance\", cluster=~\"$cluster\"}[$__rate_interval])) by (rcode)", - "interval": "$resolution", - "legendFormat": "{{`{{ rcode }}`}}", - "refId": "A" - } - ], - "title": "CoreDNS - Requests by return code", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 27 - }, - "id": 23, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_forward_requests_total{cluster=~\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "total forward requests", - "refId": "A" - } - ], - "title": "CoreDNS - Total Forward Requests", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 27 - }, - "id": 13, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_forward_responses_total{rcode=~\"SERVFAIL|REFUSED\", cluster=~\"$cluster\"}[$__rate_interval])) by (rcode)", - "interval": "$resolution", - "legendFormat": "{{`{{ rcode }}`}}", - "refId": "A" - } - ], - "title": "CoreDNS - DNS Errors", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 35 - }, - "id": 17, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_cache_hits_total{instance=~\"$instance\", cluster=~\"$cluster\"}[$__rate_interval])) by (type)", - "interval": "$resolution", - "legendFormat": "{{`{{ type }}`}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(coredns_cache_misses_total{instance=~\"$instance\", cluster=~\"$cluster\"}[$__rate_interval])) by (type)", - "interval": "$resolution", - "legendFormat": "misses", - "refId": "B" - } - ], - "title": "CoreDNS - Cache Hits / Misses", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 35 - }, - "id": 15, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(coredns_cache_entries{cluster=~\"$cluster\"}) by (type)", - "interval": "", - "legendFormat": "{{`{{ type }}`}}", - "refId": "A" - } - ], - "title": "CoreDNS - Cache Size", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 0, - "y": 43 - }, - "id": 27, - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "RdYlBu", - "steps": 64 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false, - "unit": "s" - } - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(increase(coredns_dns_request_duration_seconds_bucket{instance=~\"$instance\", cluster=~\"$cluster\"}[$__rate_interval])) by (le)", - "format": "heatmap", - "legendFormat": "{{`{{le}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CoreDNS - DNS request duration", - "type": "heatmap" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 12, - "y": 43 - }, - "id": 28, - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "RdYlBu", - "steps": 64 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false, - "unit": "decbytes" - } - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(increase(coredns_dns_request_size_bytes_bucket{instance=~\"$instance\", le!=\"0\", cluster=~\"$cluster\"}[$__rate_interval])) by (le)", - "format": "heatmap", - "legendFormat": "{{`{{le}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CoreDNS - DNS request size", - "type": "heatmap" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 0, - "y": 53 - }, - "id": 29, - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "RdYlBu", - "steps": 64 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false, - "unit": "decbytes" - } - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(increase(coredns_dns_response_size_bytes_bucket{instance=~\"$instance\", le!=\"0\", cluster=~\"$cluster\"}[$__rate_interval])) by (le)", - "format": "heatmap", - "legendFormat": "{{`{{le}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CoreDNS - DNS response size", - "type": "heatmap" - } - ], - "refresh": "30s", - "schemaVersion": 39, - "tags": [ - "Kubernetes", - "Prometheus" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "isNone": true, - "selected": false, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info,cluster)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_node_info,cluster)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(up{job=\"$job\", cluster=\"$cluster\"},instance)", - "hide": 0, - "includeAll": true, - "label": "", - "multi": false, - "name": "instance", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(up{job=\"$job\", cluster=\"$cluster\"},instance)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": "udp,tcp", - "current": { - "selected": false, - "text": "udp", - "value": "udp" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(coredns_dns_requests_total{cluster=\"$cluster\"}, proto)", - "hide": 0, - "includeAll": false, - "label": "", - "multi": false, - "name": "protocol", - "options": [], - "query": { - "query": "label_values(coredns_dns_requests_total{cluster=\"$cluster\"}, proto)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "resolution", - "options": [ - { - "selected": false, - "text": "1s", - "value": "1s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - } - ], - "query": "1s, 15s, 30s, 1m, 3m, 5m", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": true, - "text": [ - "coredns" - ], - "value": [ - "coredns" - ] - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(coredns_build_info{cluster=\"$cluster\"},job)", - "hide": 0, - "includeAll": false, - "multi": true, - "name": "job", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(coredns_build_info{cluster=\"$cluster\"},job)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Kubernetes / System / CoreDNS", - "uid": "k8s_system_coredns", - "version": 18, - "weekStart": "" - } -kind: ConfigMap -metadata: - annotations: - grafana_folder: Kubernetes - labels: - grafana_dashboard: "1" - name: dashboards-k8s-system-coredns - namespace: prometheus ---- -apiVersion: v1 -data: - k8s-views-global.json: | - { - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": {}, - "__requires": [ - { - "type": "panel", - "id": "bargauge", - "name": "Bar gauge", - "version": "" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "10.3.1" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "This is a modern 'Global View' dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 67, - "panels": [], - "title": "Overview", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-GrYlRd" - }, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 0, - "y": 1 - }, - "id": 77, - "options": { - "displayMode": "lcd", - "maxVizHeight": 300, - "minVizHeight": 10, - "minVizWidth": 0, - "namePlacement": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "valueMode": "color" - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "avg(sum by (instance, cpu) (rate(node_cpu_seconds_total{mode!~\"idle|iowait|steal\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])))", - "interval": "", - "legendFormat": "Real Linux", - "range": true, - "refId": "Real Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "avg(sum by (core) (rate(windows_cpu_time_total{mode!=\"idle\", cluster=\"$cluster\"}[$__rate_interval])))", - "hide": false, - "interval": "", - "legendFormat": "Real Windows", - "range": true, - "refId": "Real Windows" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\", cluster=\"$cluster\"}) / sum(machine_cpu_cores{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Requests", - "range": true, - "refId": "Requests" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_limits{resource=\"cpu\", cluster=\"$cluster\"}) / sum(machine_cpu_cores{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Limits", - "range": true, - "refId": "Limits" - } - ], - "title": "Global CPU Usage", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "Real", - "mode": "reduceRow", - "reduce": { - "include": [ - "Real Linux", - "Real Windows" - ], - "reducer": "mean" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Real Linux": true, - "Real Windows": true, - "Time": true - }, - "indexByName": { - "Limits": 5, - "Real": 1, - "Real Linux": 2, - "Real Windows": 3, - "Requests": 4, - "Time": 0 - }, - "renameByName": {} - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-GrYlRd" - }, - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 6, - "y": 1 - }, - "id": 78, - "options": { - "displayMode": "lcd", - "maxVizHeight": 300, - "minVizHeight": 10, - "minVizWidth": 0, - "namePlacement": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "text": {}, - "valueMode": "color" - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(node_memory_MemTotal_bytes{cluster=\"$cluster\", job=\"$job\"} - node_memory_MemAvailable_bytes{cluster=\"$cluster\", job=\"$job\"}) / sum(node_memory_MemTotal_bytes{cluster=\"$cluster\", job=\"$job\"})", - "hide": false, - "interval": "", - "legendFormat": "Real Linux", - "range": true, - "refId": "Real Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(windows_memory_available_bytes{cluster=\"$cluster\"} + windows_memory_cache_bytes{cluster=\"$cluster\"}) / sum(windows_os_visible_memory_bytes{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Real Windows", - "range": true, - "refId": "Real Windows" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\", cluster=\"$cluster\"}) / sum(machine_memory_bytes{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Requests", - "range": true, - "refId": "Requests" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_limits{resource=\"memory\", cluster=\"$cluster\"}) / sum(machine_memory_bytes{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Limits", - "range": true, - "refId": "Limits" - } - ], - "title": "Global RAM Usage", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "Real", - "mode": "reduceRow", - "reduce": { - "include": [ - "Real Linux", - "Real Windows" - ], - "reducer": "mean" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Real Linux": true, - "Real Windows": true, - "Time": true - }, - "includeByName": {}, - "indexByName": { - "Limits": 5, - "Real": 3, - "Real Linux": 1, - "Real Windows": 2, - "Requests": 4, - "Time": 0 - }, - "renameByName": {} - } - } - ], - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 2, - "x": 12, - "y": 1 - }, - "id": 63, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "value", - "wideLayout": true - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "count(count by (node) (kube_node_info{cluster=\"$cluster\"}))", - "interval": "", - "legendFormat": "", - "range": true, - "refId": "A" - } - ], - "title": "Nodes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 10, - "x": 14, - "y": 1 - }, - "id": 52, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(kube_namespace_labels{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Namespaces", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_pod_container_status_running{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Running Containers", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_pod_status_phase{phase=\"Running\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Running Pods", - "refId": "O" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_service_info{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Services", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_endpoint_info{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Endpoints", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_ingress_info{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Ingresses", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_deployment_labels{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Deployments", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_statefulset_labels{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Statefulsets", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_daemonset_labels{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Daemonsets", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_persistentvolumeclaim_info{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Persistent Volume Claims", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_hpa_labels{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Horizontal Pod Autoscalers", - "refId": "J" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_configmap_info{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Configmaps", - "refId": "K" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_secret_info{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Secrets", - "refId": "L" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_networkpolicy_labels{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Network Policies", - "refId": "M" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "count(count by (node) (kube_node_info{cluster=\"$cluster\"}))", - "hide": false, - "interval": "", - "legendFormat": "Nodes", - "refId": "N" - } - ], - "title": "Kubernetes Resource Count", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 2, - "x": 12, - "y": 5 - }, - "id": 59, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "value", - "wideLayout": true - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "count(kube_namespace_created{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Namespaces", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 0, - "y": 9 - }, - "id": 37, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_cpu_seconds_total{mode!~\"idle|iowait|steal\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval]))", - "interval": "", - "legendFormat": "Real Linux", - "range": true, - "refId": "Real Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(windows_cpu_time_total{mode!=\"idle\", cluster=\"$cluster\"}[$__rate_interval]))", - "hide": false, - "interval": "", - "legendFormat": "Real Windows", - "range": true, - "refId": "Real Windows" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Requests", - "range": true, - "refId": "Requests" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_limits{resource=\"cpu\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Limits", - "range": true, - "refId": "Limits" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(machine_cpu_cores{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Total", - "range": true, - "refId": "Total" - } - ], - "title": "CPU Usage", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "Real", - "mode": "reduceRow", - "reduce": { - "include": [ - "Real Linux", - "Real Windows" - ], - "reducer": "sum" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Real Linux": true, - "Real Windows": true, - "Time": true, - "Total Linux": true, - "Total Windows": true - }, - "indexByName": { - "Limits": 5, - "Real": 3, - "Real Linux": 1, - "Real Windows": 2, - "Requests": 4, - "Time": 0, - "Total": 8, - "Total Linux": 6, - "Total Windows": 7 - }, - "renameByName": {} - } - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 6, - "y": 9 - }, - "id": 39, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(node_memory_MemTotal_bytes{cluster=\"$cluster\", job=\"$job\"} - node_memory_MemAvailable_bytes{cluster=\"$cluster\", job=\"$job\"})", - "interval": "", - "legendFormat": "Real Linux", - "range": true, - "refId": "Real Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(windows_os_visible_memory_bytes{cluster=\"$cluster\"} - windows_memory_available_bytes{cluster=\"$cluster\"} - windows_memory_cache_bytes{cluster=\"$cluster\"})", - "hide": false, - "interval": "", - "legendFormat": "Real Windows", - "range": true, - "refId": "Real Windows" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Requests", - "range": true, - "refId": "Requests" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_limits{resource=\"memory\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Limits", - "range": true, - "refId": "Limits" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(machine_memory_bytes{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Total", - "range": true, - "refId": "Total" - } - ], - "title": "RAM Usage", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "Real", - "mode": "reduceRow", - "reduce": { - "include": [ - "Real Linux", - "Real Windows" - ], - "reducer": "mean" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Real Linux": true, - "Real Windows": true, - "Time": true - }, - "includeByName": {}, - "indexByName": { - "Limits": 5, - "Real": 3, - "Real Linux": 1, - "Real Windows": 2, - "Requests": 4, - "Time": 0, - "Total": 6 - }, - "renameByName": {} - } - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 2, - "x": 12, - "y": 9 - }, - "id": 62, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "value", - "wideLayout": true - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_pod_status_phase{phase=\"Running\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Running Pods", - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 71, - "panels": [], - "title": "Resources", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-GrYlRd", - "seriesBy": "last" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU %", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "scheme", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 0.5 - }, - { - "color": "red", - "value": 0.7 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 72, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "avg(sum by (instance, cpu) (rate(node_cpu_seconds_total{mode!~\"idle|iowait|steal\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])))", - "interval": "$resolution", - "legendFormat": "Linux", - "range": true, - "refId": "Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "1 - avg(rate(windows_cpu_time_total{cluster=\"$cluster\",mode=\"idle\"}[$__rate_interval]))", - "hide": false, - "interval": "$resolution", - "legendFormat": "Windows", - "range": true, - "refId": "Windows" - } - ], - "title": "Cluster CPU Utilization", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "CPU usage in %", - "mode": "reduceRow", - "reduce": { - "reducer": "mean" - }, - "replaceFields": true - } - } - ], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-GrYlRd" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "MEMORY", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "scheme", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 0.5 - }, - { - "color": "red", - "value": 0.7 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 14 - }, - "id": 55, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max", - "min" - ], - "displayMode": "hidden", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(node_memory_MemTotal_bytes{cluster=\"$cluster\", job=\"$job\"} - node_memory_MemAvailable_bytes{cluster=\"$cluster\", job=\"$job\"}) / sum(node_memory_MemTotal_bytes{cluster=\"$cluster\", job=\"$job\"})", - "interval": "$resolution", - "legendFormat": "Linux", - "range": true, - "refId": "Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(windows_os_visible_memory_bytes{cluster=\"$cluster\"} - windows_memory_available_bytes{cluster=\"$cluster\"}) / sum(windows_os_visible_memory_bytes{cluster=\"$cluster\"})", - "hide": false, - "interval": "$resolution", - "legendFormat": "Windows", - "range": true, - "refId": "Windows" - } - ], - "title": "Cluster Memory Utilization", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "Memory usage in %", - "mode": "reduceRow", - "reduce": { - "reducer": "mean" - }, - "replaceFields": true - } - } - ], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU CORES", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 22 - }, - "id": 46, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "10.4.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_usage_seconds_total{image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (namespace)\n+ on (namespace)\n(sum(rate(windows_container_cpu_usage_seconds_total{container_id!=\"\", cluster=\"$cluster\"}[$__rate_interval]) * on (container_id) group_left (container, pod, namespace) max by ( container, container_id, pod, namespace) (kube_pod_container_info{container_id!=\"\", cluster=\"$cluster\"}) OR kube_namespace_created{cluster=\"$cluster\"} * 0) by (namespace))", - "format": "time_series", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{ namespace }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU Utilization by namespace", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 22 - }, - "id": 50, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{image!=\"\", cluster=\"$cluster\"}) by (namespace)\n+ on (namespace)\n(sum(windows_container_memory_usage_commit_bytes{container_id!=\"\", cluster=\"$cluster\"} * on (container_id) group_left (container, pod, namespace) max by ( container, container_id, pod, namespace) (kube_pod_container_info{container_id!=\"\", cluster=\"$cluster\"}) OR kube_namespace_created{cluster=\"$cluster\"} * 0) by (namespace))", - "interval": "$resolution", - "legendFormat": "{{`{{ namespace }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Memory Utilization by namespace", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU %", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 30 - }, - "id": 54, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "avg(sum by (instance, cpu) (rate(node_cpu_seconds_total{mode!~\"idle|iowait|steal\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval]))) by (instance)", - "interval": "$resolution", - "legendFormat": "{{`{{ node }}`}}", - "range": true, - "refId": "Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "avg(sum by (instance,core) (rate(windows_cpu_time_total{mode!=\"idle\", cluster=\"$cluster\"}[$__rate_interval]))) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{ node }}`}}", - "range": true, - "refId": "Windows" - } - ], - "title": "CPU Utilization by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "MEMORY", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 30 - }, - "id": 73, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(node_memory_MemTotal_bytes{cluster=\"$cluster\", job=\"$job\"} - node_memory_MemAvailable_bytes{cluster=\"$cluster\", job=\"$job\"}) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "range": true, - "refId": "Linux" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(windows_os_visible_memory_bytes{cluster=\"$cluster\"} - windows_memory_available_bytes{cluster=\"$cluster\"}) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "range": true, - "refId": "Windows" - } - ], - "title": "Memory Utilization by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "No data is generally a good thing here.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "SECONDS", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 38 - }, - "id": 82, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_cfs_throttled_seconds_total{image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (namespace) > 0", - "interval": "$resolution", - "legendFormat": "{{`{{ namespace }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU Throttled seconds by namespace", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "No data is generally a good thing here.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "NB", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 38 - }, - "id": 83, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_cpu_core_throttles_total{cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (instance)", - "interval": "$resolution", - "legendFormat": "{{`{{ instance }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU Core Throttled by instance", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 46 - }, - "id": 86, - "panels": [], - "title": "Kubernetes", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 47 - }, - "id": 84, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kube_pod_status_qos_class{cluster=\"$cluster\"}) by (qos_class)", - "interval": "", - "legendFormat": "{{`{{ qos_class }}`}} pods", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_info{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Total pods", - "range": true, - "refId": "B" - } - ], - "title": "Kubernetes Pods QoS classes", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 47 - }, - "id": 85, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kube_pod_status_reason{cluster=\"$cluster\"}) by (reason)", - "interval": "", - "legendFormat": "{{`{{ reason }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Kubernetes Pods Status Reason", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "No data is generally a good thing here.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "points", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 56 - }, - "id": 87, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(container_oom_events_total{cluster=\"$cluster\"}[$__rate_interval])) by (namespace) > 0", - "interval": "", - "legendFormat": "{{`{{ namespace }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "OOM Events by namespace", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "No data is generally a good thing here.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "points", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 56 - }, - "id": 88, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(kube_pod_container_status_restarts_total{cluster=\"$cluster\"}[$__rate_interval])) by (namespace) > 0", - "interval": "", - "legendFormat": "{{`{{ namespace }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Container Restarts by namespace", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 65 - }, - "id": 69, - "panels": [], - "title": "Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Dropped noisy virtual devices for readability.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "BANDWIDTH", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 66 - }, - "id": 44, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_network_receive_bytes_total{device!~\"(veth|azv|lxc).*\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (device)", - "interval": "$resolution", - "legendFormat": "Received : {{`{{ device }}`}}", - "range": true, - "refId": "Linux Received" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(node_network_transmit_bytes_total{device!~\"(veth|azv|lxc).*\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (device)", - "interval": "$resolution", - "legendFormat": "Transmitted : {{`{{ device }}`}}", - "range": true, - "refId": "Linux Transmitted" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(windows_net_bytes_received_total{cluster=\"$cluster\"}[$__rate_interval])) by (nic)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Received : {{`{{ nic }}`}}", - "range": true, - "refId": "Windows Received" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(windows_net_bytes_sent_total{cluster=\"$cluster\"}[$__rate_interval])) by (nic)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Transmitted : {{`{{ device }}`}}", - "range": true, - "refId": "Windows Transmitted" - } - ], - "title": "Global Network Utilization by device", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "DROPPED PACKETS", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 66 - }, - "id": 53, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_network_receive_drop_total{cluster=\"$cluster\", job=\"$job\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Linux Packets dropped (receive)", - "range": true, - "refId": "Linux Packets dropped (receive)" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(node_network_transmit_drop_total{cluster=\"$cluster\", job=\"$job\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Linux Packets dropped (transmit)", - "range": true, - "refId": "Linux Packets dropped (transmit)" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(windows_net_packets_received_discarded_total{cluster=\"$cluster\"}[$__rate_interval]))", - "hide": false, - "interval": "$resolution", - "legendFormat": "Windows Packets dropped (receive)", - "range": true, - "refId": "Windows Packets dropped (receive)" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(windows_net_packets_outbound_discarded_total{cluster=\"$cluster\"}[$__rate_interval]))", - "hide": false, - "interval": "$resolution", - "legendFormat": "Windows Packets dropped (transmit)", - "range": true, - "refId": "Windows Packets dropped (transmit)" - } - ], - "title": "Network Saturation - Packets dropped", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "Packets dropped (receive)", - "mode": "reduceRow", - "reduce": { - "include": [ - "Linux Packets dropped (receive)", - "Windows Packets dropped (receive)" - ], - "reducer": "mean" - } - } - }, - { - "id": "calculateField", - "options": { - "alias": "Packets dropped (transmit)", - "mode": "reduceRow", - "reduce": { - "include": [ - "Linux Packets dropped (transmit)", - "Windows Packets dropped (transmit)" - ], - "reducer": "mean" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Linux Packets dropped (receive)": true, - "Linux Packets dropped (transmit)": true, - "Time": false, - "Windows Packets dropped (receive)": true, - "Windows Packets dropped (transmit)": true - }, - "includeByName": {}, - "indexByName": {}, - "renameByName": {} - } - } - ], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "BANDWIDTH", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 74 - }, - "id": 79, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\"}[$__rate_interval])) by (namespace)\n+ on (namespace)\n(sum(rate(windows_container_network_receive_bytes_total{container_id!=\"\", cluster=\"$cluster\"}[$__rate_interval]) * on (container_id) group_left (container, pod, namespace) max by ( container, container_id, pod, namespace) (kube_pod_container_info{container_id!=\"\", cluster=\"$cluster\"}) OR kube_namespace_created{cluster=\"$cluster\"} * 0) by (namespace))", - "interval": "$resolution", - "legendFormat": "Received : {{`{{ namespace }}`}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "- (sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\"}[$__rate_interval])) by (namespace)\n+ on (namespace)\n(sum(rate(windows_container_network_transmit_bytes_total{container_id!=\"\", cluster=\"$cluster\"}[$__rate_interval]) * on (container_id) group_left (container, pod, namespace) max by ( container, container_id, pod, namespace) (kube_pod_container_info{container_id!=\"\", cluster=\"$cluster\"}) OR kube_namespace_created{cluster=\"$cluster\"} * 0) by (namespace)))", - "hide": false, - "interval": "$resolution", - "legendFormat": "Transmitted : {{`{{ namespace }}`}}", - "range": true, - "refId": "B" - } - ], - "title": "Network Received by namespace", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "BANDWIDTH", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 74 - }, - "id": 80, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_network_receive_bytes_total{cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (instance)", - "interval": "$resolution", - "legendFormat": "Received bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "Linux Received bytes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "- sum(rate(node_network_transmit_bytes_total{cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Transmitted bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "Linux Transmitted bytes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(windows_net_bytes_received_total{cluster=\"$cluster\"}[$__rate_interval])) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Received bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "Windows Received bytes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "- sum(rate(windows_net_bytes_sent_total{cluster=\"$cluster\"}[$__rate_interval])) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Transmitted bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "Windows Transmitted bytes" - } - ], - "title": "Total Network Received (with all virtual devices) by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Dropped noisy virtual devices for readability.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "BANDWIDTH", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 82 - }, - "id": 56, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_network_receive_bytes_total{device!~\"(veth|azv|lxc|lo).*\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (instance)", - "interval": "$resolution", - "legendFormat": "Received bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "- sum(rate(node_network_transmit_bytes_total{device!~\"(veth|azv|lxc|lo).*\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Transmitted bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(windows_net_bytes_received_total{nic!~\".*Virtual.*\",cluster=\"$cluster\"}[$__rate_interval])) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Received bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(windows_net_bytes_sent_total{nic!~\".*Virtual.*\",cluster=\"$cluster\"}[$__rate_interval])) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Transmitted bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "D" - } - ], - "title": "Network Received (without loopback) by instance", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Dropped noisy virtual devices for readability.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "BANDWIDTH", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 82 - }, - "id": 81, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_network_receive_bytes_total{device=\"lo\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (instance)", - "interval": "$resolution", - "legendFormat": "Received bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "- sum(rate(node_network_transmit_bytes_total{device=\"lo\", cluster=\"$cluster\", job=\"$job\"}[$__rate_interval])) by (instance)", - "hide": false, - "interval": "$resolution", - "legendFormat": "Transmitted bytes in {{`{{ instance }}`}}", - "range": true, - "refId": "B" - } - ], - "title": "Network Received (loopback only) by instance", - "type": "timeseries" - } - ], - "refresh": "30s", - "schemaVersion": 39, - "tags": [ - "Kubernetes", - "Prometheus" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "", - "value": "" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info,cluster)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_node_info,cluster)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "resolution", - "options": [ - { - "selected": false, - "text": "1s", - "value": "1s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - } - ], - "query": "1s, 15s, 30s, 1m, 3m, 5m", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(node_cpu_seconds_total{cluster=\"$cluster\"},job)", - "hide": 0, - "includeAll": false, - "multi": true, - "name": "job", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(node_cpu_seconds_total{cluster=\"$cluster\"},job)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Kubernetes / Views / Global", - "uid": "k8s_views_global", - "version": 39, - "weekStart": "" - } -kind: ConfigMap -metadata: - annotations: - grafana_folder: Kubernetes - labels: - grafana_dashboard: "1" - name: dashboards-k8s-views-global - namespace: prometheus ---- -apiVersion: v1 -data: - k8s-views-namespaces.json: | - { - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": {}, - "__requires": [ - { - "type": "panel", - "id": "gauge", - "name": "Gauge", - "version": "" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "10.3.1" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "This is a modern 'Namespaces View' dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 38, - "panels": [], - "title": "Overview", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 70 - } - ] - }, - "unit": "percentunit", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 1 - }, - "id": 46, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto", - "text": {} - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=~\"$namespace\", image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) / sum(machine_cpu_cores{cluster=\"$cluster\"})", - "instant": true, - "interval": "", - "legendFormat": "", - "range": false, - "refId": "A" - } - ], - "title": "Namespace(s) usage on total cluster CPU in %", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 70 - } - ] - }, - "unit": "percentunit", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 1 - }, - "id": 48, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto", - "text": {} - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{namespace=~\"$namespace\", image!=\"\", cluster=\"$cluster\"}) / sum(machine_memory_bytes{cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Namespace(s) usage on total cluster RAM in %", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 1 - }, - "id": 32, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_pod_info{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Running Pods", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_service_info{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Services", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_ingress_info{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Ingresses", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_deployment_labels{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Deployments", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_statefulset_labels{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Statefulsets", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_daemonset_labels{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Daemonsets", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_persistentvolumeclaim_info{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Persistent Volume Claims", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_hpa_labels{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Horizontal Pod Autoscalers", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_configmap_info{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Configmaps", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_secret_info{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Secrets", - "refId": "J" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_networkpolicy_labels{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Network Policies", - "refId": "K" - } - ], - "title": "Kubernetes Resource Count", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 0, - "y": 8 - }, - "id": 62, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=~\"$namespace\", image!=\"\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "", - "legendFormat": "Real", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_requests{namespace=~\"$namespace\", resource=\"cpu\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Requests", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_limits{namespace=~\"$namespace\", resource=\"cpu\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Limits", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(machine_cpu_cores{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Cluster Total", - "range": true, - "refId": "D" - } - ], - "title": "Namespace(s) CPU Usage in cores", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "bytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 6, - "x": 6, - "y": 8 - }, - "id": 64, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{namespace=~\"$namespace\", image!=\"\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Real", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_requests{namespace=~\"$namespace\", resource=\"memory\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Requests", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_resource_limits{namespace=~\"$namespace\", resource=\"memory\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Limits", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(machine_memory_bytes{cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Cluster Total", - "range": true, - "refId": "D" - } - ], - "title": "Namespace(s) RAM Usage in bytes", - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 40, - "panels": [], - "title": "Resources", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU CORES", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 13 - }, - "id": 29, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=~\"$namespace\", image!=\"\", pod=~\"${created_by}.*\", cluster=\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU usage by Pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 13 - }, - "id": 30, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{namespace=~\"$namespace\", image!=\"\", pod=~\"${created_by}.*\", cluster=\"$cluster\"}) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Memory usage by Pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "SECONDS", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 21 - }, - "id": 68, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_cfs_throttled_seconds_total{namespace=~\"$namespace\", image!=\"\", pod=~\"${created_by}.*\", cluster=\"$cluster\"}[$__rate_interval])) by (pod) > 0", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU Throttled seconds by pod", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 29 - }, - "id": 73, - "panels": [], - "title": "Kubernetes", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 30 - }, - "id": 70, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kube_pod_status_qos_class{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (qos_class)", - "interval": "", - "legendFormat": "{{`{{ qos_class }}`}} pods", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_info{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "hide": false, - "legendFormat": "Total pods", - "range": true, - "refId": "B" - } - ], - "title": "Kubernetes Pods QoS classes", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 30 - }, - "id": 72, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kube_pod_status_reason{cluster=\"$cluster\"}) by (reason)", - "interval": "", - "legendFormat": "{{`{{ reason }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Kubernetes Pods Status Reason", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "No data is generally a good thing here.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "points", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 39 - }, - "id": 74, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(container_oom_events_total{namespace=~\"${namespace}\", cluster=\"$cluster\"}[$__rate_interval])) by (namespace, pod) > 0", - "interval": "", - "legendFormat": "namespace: {{`{{ namespace }}`}} - pod: {{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "OOM Events by namespace, pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "No data is generally a good thing here.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "points", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 39 - }, - "id": 75, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(kube_pod_container_status_restarts_total{namespace=~\"${namespace}\", cluster=\"$cluster\"}[$__rate_interval])) by (namespace, pod) > 0", - "interval": "", - "legendFormat": "namespace: {{`{{ namespace }}`}} - pod: {{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Container Restarts by namespace, pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 48 - }, - "id": 5, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_status_ready{namespace=~\"$namespace\", pod=~\"${created_by}.*\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Ready", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_status_running{namespace=~\"$namespace\", pod=~\"${created_by}.*\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Running", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_pod_container_status_waiting{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Waiting", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_pod_container_status_restarts_total{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Restarts Total", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "expr": "sum(kube_pod_container_status_terminated{namespace=~\"$namespace\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "Terminated", - "refId": "E" - } - ], - "title": "Nb of pods by state", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 48 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_container_info{namespace=~\"$namespace\", pod=~\"${created_by}.*\", cluster=\"$cluster\"}) by (pod)", - "interval": "", - "legendFormat": "{{`{{ pod }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Nb of containers by pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 56 - }, - "id": 7, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kube_deployment_status_replicas_available{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (deployment)", - "interval": "", - "legendFormat": "{{`{{ deployment }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Replicas available by deployment", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 56 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(kube_deployment_status_replicas_unavailable{namespace=~\"$namespace\", pod=~\"${created_by}.*\", cluster=\"$cluster\"}) by (deployment)", - "interval": "", - "legendFormat": "{{`{{ deployment }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Replicas unavailable by deployment", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 64 - }, - "id": 42, - "panels": [], - "title": "Kubernetes Storage", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 65 - }, - "id": 65, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(kubelet_volume_stats_used_bytes{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_capacity_bytes{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (persistentvolumeclaim)", - "interval": "", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}}", - "refId": "A" - } - ], - "title": "Persistent Volumes - Capacity and usage in %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 65 - }, - "id": 66, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(kubelet_volume_stats_used_bytes{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (persistentvolumeclaim)", - "interval": "", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}} - Used", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(kubelet_volume_stats_capacity_bytes{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (persistentvolumeclaim)", - "hide": false, - "interval": "", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}} - Capacity", - "refId": "B" - } - ], - "title": "Persistent Volumes - Capacity and usage in bytes", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 73 - }, - "id": 27, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "1 - sum(kubelet_volume_stats_inodes_used{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_inodes{namespace=~\"$namespace\", cluster=\"$cluster\"}) by (persistentvolumeclaim)", - "interval": "", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}}", - "refId": "A" - } - ], - "title": "Persistent Volumes - Inodes", - "type": "timeseries" - } - ], - "refresh": "30s", - "schemaVersion": 39, - "tags": [ - "Kubernetes", - "Prometheus" - ], - "templating": { - "list": [ - { - "current": {}, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info,cluster)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_node_info,cluster)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_pod_info{cluster=\"$cluster\"}, namespace)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "namespace", - "options": [], - "query": { - "query": "label_values(kube_pod_info{cluster=\"$cluster\"}, namespace)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "resolution", - "options": [ - { - "selected": false, - "text": "1s", - "value": "1s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - } - ], - "query": "1s, 15s, 30s, 1m, 3m, 5m", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_pod_info{namespace=~\"$namespace\", container!=\"\", cluster=\"$cluster\"},created_by_name)", - "description": "Can be used to filter on a specific deployment, statefulset or deamonset (only relevant panels).", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "created_by", - "options": [], - "query": { - "query": "label_values(kube_pod_info{namespace=~\"$namespace\", container!=\"\", cluster=\"$cluster\"},created_by_name)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Kubernetes / Views / Namespaces", - "uid": "k8s_views_ns", - "version": 34, - "weekStart": "" - } -kind: ConfigMap -metadata: - annotations: - grafana_folder: Kubernetes - labels: - grafana_dashboard: "1" - name: dashboards-k8s-views-namespaces - namespace: prometheus ---- -apiVersion: v1 -data: - k8s-views-nodes.json: | - { - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": {}, - "__requires": [ - { - "type": "panel", - "id": "gauge", - "name": "Gauge", - "version": "" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "10.3.1" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "This is a modern 'Nodes View' dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 40, - "panels": [], - "title": "Overview", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 70 - } - ] - }, - "unit": "percentunit", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 4, - "x": 0, - "y": 1 - }, - "id": 7, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto", - "text": {} - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": false, - "expr": "avg(sum by (cpu) (rate(node_cpu_seconds_total{mode!~\"idle|iowait|steal\", instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval])))", - "instant": true, - "interval": "$resolution", - "legendFormat": "", - "refId": "A" - } - ], - "title": "CPU Usage", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "orange", - "value": 50 - }, - { - "color": "red", - "value": 70 - } - ] - }, - "unit": "percentunit", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 4, - "x": 4, - "y": 1 - }, - "id": 13, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto", - "text": {} - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": false, - "expr": "sum(node_memory_MemTotal_bytes{instance=\"$instance\", cluster=\"$cluster\"} - node_memory_MemAvailable_bytes{instance=\"$instance\", cluster=\"$cluster\"}) / sum(node_memory_MemTotal_bytes{instance=\"$instance\", cluster=\"$cluster\"})", - "instant": true, - "interval": "$resolution", - "legendFormat": "", - "refId": "A" - } - ], - "title": "RAM Usage", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - } - ] - }, - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 4, - "x": 8, - "y": 1 - }, - "id": 24, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "value", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(kube_pod_info{node=\"$node\", cluster=\"$cluster\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Pods on node", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "links": [ - { - "targetBlank": true, - "title": "Pod details", - "url": "/d/k8s_views_pods/kubernetes-views-pods?${datasource:queryparam}&var-namespace=${__data.fields.namespace}&var-pod=${__data.fields.pod}&${resolution:queryparam}&${__url_time_range}" - } - ], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unitScale": true - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "pod" - }, - "properties": [ - { - "id": "custom.width", - "value": 416 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "priority_class" - }, - "properties": [ - { - "id": "custom.width", - "value": 176 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "pod_ip" - }, - "properties": [ - { - "id": "custom.width", - "value": 157 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "created_by_kind" - }, - "properties": [ - { - "id": "custom.width", - "value": 205 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "namespace" - }, - "properties": [ - { - "id": "custom.width", - "value": 263 - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 1 - }, - "id": 5, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "kube_pod_info{node=\"$node\", cluster=\"$cluster\"}", - "format": "table", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "List of pods on node ($node)", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true, - "__name__": true, - "container": true, - "created_by_kind": false, - "created_by_name": true, - "endpoint": true, - "env": true, - "host_ip": true, - "host_network": true, - "instance": true, - "job": true, - "node": true, - "project": true, - "prometheus_replica": true, - "service": true, - "uid": true - }, - "indexByName": { - "Time": 6, - "Value": 20, - "__name__": 7, - "container": 8, - "created_by_kind": 2, - "created_by_name": 9, - "endpoint": 10, - "env": 11, - "host_ip": 5, - "host_network": 12, - "instance": 13, - "job": 14, - "namespace": 1, - "node": 15, - "pod": 0, - "pod_ip": 3, - "priority_class": 4, - "project": 16, - "prometheus_replica": 17, - "service": 18, - "uid": 19 - }, - "renameByName": {} - } - }, - { - "id": "groupBy", - "options": { - "fields": { - "created_by_kind": { - "aggregations": [], - "operation": "groupby" - }, - "host_ip": { - "aggregations": [], - "operation": "groupby" - }, - "namespace": { - "aggregations": [ - "last" - ], - "operation": "groupby" - }, - "pod": { - "aggregations": [], - "operation": "groupby" - }, - "pod_ip": { - "aggregations": [], - "operation": "groupby" - }, - "priority_class": { - "aggregations": [], - "operation": "groupby" - } - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "decimals": 3, - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 0, - "y": 9 - }, - "id": 9, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": false, - "expr": "sum(rate(node_cpu_seconds_total{mode!~\"idle|iowait|steal\", instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "instant": true, - "interval": "$resolution", - "legendFormat": "", - "refId": "A" - } - ], - "title": "CPU Used", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 2, - "y": 9 - }, - "id": 11, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(machine_cpu_cores{node=\"$node\", cluster=\"$cluster\"})", - "interval": "$resolution", - "legendFormat": "", - "refId": "A" - } - ], - "title": "CPU Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "bytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 4, - "y": 9 - }, - "id": 15, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": false, - "expr": "sum(node_memory_MemTotal_bytes{instance=\"$instance\", cluster=\"$cluster\"} - node_memory_MemAvailable_bytes{instance=\"$instance\", cluster=\"$cluster\"})", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "RAM Used", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "bytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 2, - "x": 6, - "y": 9 - }, - "id": 17, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "machine_memory_bytes{node=\"$node\", cluster=\"$cluster\"}", - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "RAM Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 25228800 - }, - { - "color": "red", - "value": 31536000 - } - ] - }, - "unit": "s", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 8, - "y": 9 - }, - "id": 18, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "text": {}, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.3.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_time_seconds{instance=\"$instance\", cluster=\"$cluster\"} - node_boot_time_seconds{instance=\"$instance\", cluster=\"$cluster\"}", - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "uptime", - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 38, - "panels": [], - "title": "Resources", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "max": 100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 13 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "avg(rate(node_cpu_seconds_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]) * 100) by (mode)", - "hide": false, - "instant": false, - "interval": "$resolution", - "legendFormat": "{{`{{ mode }}`}}", - "refId": "A" - } - ], - "title": "CPU Usage", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 13 - }, - "id": 3, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_memory_MemTotal_bytes{instance=\"$instance\", cluster=\"$cluster\"} - node_memory_MemFree_bytes{instance=\"$instance\", cluster=\"$cluster\"} - (node_memory_Cached_bytes{instance=\"$instance\", cluster=\"$cluster\"} + node_memory_Buffers_bytes{instance=\"$instance\", cluster=\"$cluster\"})", - "instant": false, - "interval": "$resolution", - "legendFormat": "RAM Used", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_memory_MemTotal_bytes{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "RAM Total", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_memory_Cached_bytes{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "RAM Cache", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_memory_Buffers_bytes{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "RAM Buffer", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_memory_MemFree_bytes{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "RAM Free", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_memory_SwapTotal_bytes{instance=\"$instance\", cluster=\"$cluster\"} - node_memory_SwapFree_bytes{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "SWAP Used", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "node_memory_SwapTotal_bytes{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "SWAP Total", - "refId": "G" - } - ], - "title": "Memory Usage", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU Cores", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 22 - }, - "id": 26, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(container_cpu_usage_seconds_total{node=\"$node\", image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}}", - "refId": "A" - } - ], - "title": "CPU usage by Pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 22 - }, - "id": 28, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{node=\"$node\", image!=\"\", cluster=\"$cluster\"}) by (pod)", - "interval": "$resolution", - "legendFormat": "{{`{{ pod }}`}}", - "refId": "A" - } - ], - "title": "Memory usage by Pod", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Number of times a CPU core has been throttled on an instance.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU CORES", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 30 - }, - "id": 66, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_cpu_core_throttles_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Nb of cpu core throttles", - "range": true, - "refId": "A" - } - ], - "title": "Number of CPU Core Throttled", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 38 - }, - "id": 44, - "panels": [], - "title": "System", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 39 - }, - "id": 48, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_load1{instance=\"$instance\", cluster=\"$cluster\"}", - "interval": "$resolution", - "legendFormat": "1m", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_load5{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "5m", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_load15{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "15m", - "range": true, - "refId": "C" - } - ], - "title": "System Load", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 39 - }, - "id": 46, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(node_context_switches_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval])", - "interval": "$resolution", - "intervalFactor": 1, - "legendFormat": "Context switches", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(node_intr_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval])", - "hide": false, - "interval": "$resolution", - "legendFormat": "Interrupts", - "range": true, - "refId": "B" - } - ], - "title": "Context Switches & Interrupts", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 47 - }, - "id": 49, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_filefd_maximum{instance=\"$instance\", cluster=\"$cluster\"}", - "instant": false, - "interval": "$resolution", - "legendFormat": "Maximum file descriptors", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_filefd_allocated{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "instant": false, - "interval": "$resolution", - "legendFormat": "Allocated file descriptors", - "refId": "B" - } - ], - "title": "File Descriptors", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 47 - }, - "id": 50, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_timex_estimated_error_seconds{instance=\"$instance\", cluster=\"$cluster\"}", - "instant": false, - "interval": "$resolution", - "intervalFactor": 1, - "legendFormat": "Estimated error in seconds", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_timex_maxerror_seconds{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "intervalFactor": 1, - "legendFormat": "Maximum error in seconds", - "range": true, - "refId": "B" - } - ], - "title": "Time Sync", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 55 - }, - "id": 36, - "panels": [], - "title": "Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "BANDWIDTH", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 56 - }, - "id": 20, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_network_receive_bytes_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "In", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(node_network_transmit_bytes_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Out", - "range": true, - "refId": "B" - } - ], - "title": "Network usage (bytes)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 56 - }, - "id": 61, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(node_network_receive_errs_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "In", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(node_network_transmit_errs_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Out", - "range": true, - "refId": "B" - } - ], - "title": "Network errors", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "pps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 64 - }, - "id": 62, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(node_network_receive_packets_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "In", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "- sum(rate(node_network_transmit_packets_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Out", - "range": true, - "refId": "B" - } - ], - "title": "Network usage (packet/s)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 64 - }, - "id": 64, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(node_network_receive_drop_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "hide": false, - "interval": "$resolution", - "legendFormat": "In", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "- sum(rate(node_network_transmit_drop_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]))", - "hide": false, - "interval": "$resolution", - "legendFormat": "Out", - "refId": "B" - } - ], - "title": "Network total drops", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 72 - }, - "id": 60, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_netstat_Tcp_CurrEstab{instance=\"$instance\", cluster=\"$cluster\"}", - "instant": false, - "interval": "$resolution", - "legendFormat": "TCP Currently Established", - "refId": "A" - } - ], - "title": "TCP Currently Established", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "NF Conntrack limit" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 72 - }, - "id": 63, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_nf_conntrack_entries{instance=\"$instance\", cluster=\"$cluster\"}", - "instant": false, - "interval": "$resolution", - "legendFormat": "NF Conntrack entries", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "node_nf_conntrack_entries_limit{instance=\"$instance\", cluster=\"$cluster\"}", - "hide": false, - "interval": "$resolution", - "legendFormat": "NF Conntrack limit", - "range": true, - "refId": "B" - } - ], - "title": "NF Conntrack", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 80 - }, - "id": 54, - "panels": [], - "title": "Kubernetes Storage", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 81 - }, - "id": 30, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kubelet_volume_stats_used_bytes{node=\"$node\", cluster=\"$cluster\"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_capacity_bytes{node=\"$node\", cluster=\"$cluster\"}) by (persistentvolumeclaim)", - "interval": "$resolution", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Persistent Volumes - Usage in %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-GrYlRd" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Used" - }, - "properties": [ - { - "id": "custom.width", - "value": 146 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total" - }, - "properties": [ - { - "id": "custom.width", - "value": 167 - } - ] - } - ] - }, - "gridPos": { - "h": 16, - "w": 12, - "x": 12, - "y": 81 - }, - "id": 34, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "10.2.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(kubelet_volume_stats_used_bytes{node=\"$node\", cluster=\"$cluster\"}) by (persistentvolumeclaim)", - "format": "table", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(kubelet_volume_stats_capacity_bytes{node=\"$node\", cluster=\"$cluster\"}) by (persistentvolumeclaim)", - "format": "table", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "B" - } - ], - "title": "Persistent Volumes - Usage in GB", - "transformations": [ - { - "id": "groupBy", - "options": { - "fields": { - "Value": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "Value #A": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "Value #B": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "persistentvolumeclaim": { - "aggregations": [], - "operation": "groupby" - } - } - } - }, - { - "id": "seriesToColumns", - "options": { - "byField": "persistentvolumeclaim" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "Value #A (lastNotNull)": "Used", - "Value #B (lastNotNull)": "Total", - "persistentvolumeclaim": "Persistent Volume Claim" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 89 - }, - "id": 32, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(kubelet_volume_stats_inodes_used{node=\"$node\", cluster=\"$cluster\"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_inodes{node=\"$node\", cluster=\"$cluster\"}) by (persistentvolumeclaim) * 100", - "interval": "$resolution", - "legendFormat": "{{`{{ persistentvolumeclaim }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Persistent Volumes - Inodes", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 97 - }, - "id": 42, - "panels": [], - "title": "Node Storage", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 98 - }, - "id": 33, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "100 - ((node_filesystem_avail_bytes{instance=\"$instance\", cluster=\"$cluster\"} * 100) / node_filesystem_size_bytes{instance=\"$instance\", cluster=\"$cluster\"})", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{ mountpoint }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "FS usage in %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 98 - }, - "id": 59, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "100 - (node_filesystem_files_free{instance=\"$instance\", cluster=\"$cluster\"} / node_filesystem_files{instance=\"$instance\", cluster=\"$cluster\"} * 100)", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{ mountpoint }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "FS inode usage in %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 106 - }, - "id": 52, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(node_disk_read_bytes_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval])", - "interval": "$resolution", - "legendFormat": "{{`{{device}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Reads by disk (bytes)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 106 - }, - "id": 57, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(node_disk_written_bytes_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval])", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{device}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Writes by disk (bytes)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "read/s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 114 - }, - "id": 51, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(node_disk_reads_completed_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval])", - "interval": "$resolution", - "legendFormat": "{{`{{device}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Completed reads by disk", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "write/s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 114 - }, - "id": 56, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(node_disk_writes_completed_total{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval])", - "hide": false, - "interval": "$resolution", - "legendFormat": "{{`{{device}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Completed writes by disk", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "io/s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 122 - }, - "id": 58, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(node_disk_io_now{instance=\"$instance\", cluster=\"$cluster\"}[$__rate_interval]) ", - "interval": "$resolution", - "legendFormat": "{{`{{device}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Disk(s) io/s", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 122 - }, - "id": 55, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": false - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(node_filesystem_device_error{instance=\"$instance\", cluster=\"$cluster\"}) by (mountpoint)", - "interval": "$resolution", - "legendFormat": "{{`{{ mountpoint }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "FS - Device Errors", - "type": "timeseries" - } - ], - "refresh": "30s", - "schemaVersion": 39, - "tags": [ - "Kubernetes", - "Prometheus" - ], - "templating": { - "list": [ - { - "current": {}, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info,cluster)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_node_info,cluster)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "resolution", - "options": [ - { - "selected": false, - "text": "1s", - "value": "1s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - } - ], - "query": "1s, 15s, 30s, 1m, 3m, 5m", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info{cluster=\"$cluster\"}, node)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "node", - "options": [], - "query": { - "query": "label_values(kube_node_info{cluster=\"$cluster\"}, node)", - "refId": "StandardVariableQuery" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(node_uname_info{nodename=~\"(?i:($node))\"}, instance)", - "hide": 2, - "includeAll": false, - "multi": false, - "name": "instance", - "options": [], - "query": { - "query": "label_values(node_uname_info{nodename=~\"(?i:($node))\"}, instance)", - "refId": "StandardVariableQuery" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Kubernetes / Views / Nodes", - "uid": "k8s_views_nodes", - "version": 29, - "weekStart": "" - } -kind: ConfigMap -metadata: - annotations: - grafana_folder: Kubernetes - labels: - grafana_dashboard: "1" - name: dashboards-k8s-views-nodes - namespace: prometheus ---- -apiVersion: v1 -data: - k8s-views-pods.json: | - { - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": [], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "8.3.4" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "timeseries", - "name": "Time series", - "version": "" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "gauge", - "name": "Gauge", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "This is a modern 'Pods View' dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 43, - "panels": [], - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "refId": "A" - } - ], - "title": "Information", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Panel only works when a single pod is selected.", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 12, - "x": 0, - "y": 1 - }, - "id": 2, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "name", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "kube_pod_info{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{ created_by_kind }}`}}: {{`{{ created_by_name }}`}}", - "refId": "A" - } - ], - "title": "Created by", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Panel only works when a single pod is selected.", - "fieldConfig": { - "defaults": { - "links": [ - { - "title": "", - "url": "/d/k8s_views_nodes/kubernetes-views-nodes?var-datasource=${datasource}&var-node=${__data.fields.node}" - } - ], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 6, - "x": 12, - "y": 1 - }, - "id": 33, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "name", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "kube_pod_info{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{ node }}`}}", - "refId": "A" - } - ], - "title": "Running on", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Panel only works when a single pod is selected.", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 6, - "x": 18, - "y": 1 - }, - "id": 41, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "name", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "kube_pod_info{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{ pod_ip }}`}}", - "refId": "A" - } - ], - "title": "Pod IP", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Panel only works when a single pod is selected.", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(255, 255, 255)", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 5, - "x": 0, - "y": 3 - }, - "id": 52, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "name", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "kube_pod_info{namespace=\"$namespace\", pod=\"$pod\", priority_class!=\"\", cluster=\"$cluster\"}", - "format": "time_series", - "instant": true, - "interval": "", - "legendFormat": "{{`{{ priority_class }}`}}", - "range": false, - "refId": "A" - } - ], - "title": "Priority Class", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Panel only works when a single pod is selected.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Burstable" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "BestEffort" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 2, - "w": 7, - "x": 5, - "y": 3 - }, - "id": 53, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "name", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "kube_pod_status_qos_class{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\"} > 0", - "instant": true, - "interval": "", - "legendFormat": "{{`{{ qos_class }}`}}", - "refId": "A" - } - ], - "title": "QOS Class", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Panel only works when a single pod is selected.", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 6, - "x": 12, - "y": 3 - }, - "id": 56, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "name", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "kube_pod_container_status_last_terminated_reason{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\"}", - "instant": true, - "interval": "", - "legendFormat": "{{`{{ reason }}`}}", - "refId": "A" - } - ], - "title": "Last Terminated Reason", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "Panel only works when a single pod is selected.", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - }, - { - "color": "red", - "value": 1 - }, - { - "color": "#EAB839", - "value": 2 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 6, - "x": 18, - "y": 3 - }, - "id": 57, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [], - "fields": "", - "values": true - }, - "showPercentChange": false, - "textMode": "value", - "wideLayout": true - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "kube_pod_container_status_last_terminated_exitcode{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\"}", - "instant": true, - "interval": "", - "legendFormat": "__auto", - "range": false, - "refId": "A" - } - ], - "title": "Last Terminated Exit Code", - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 47, - "panels": [], - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "refId": "A" - } - ], - "title": "Resources", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "blue", - "mode": "fixed" - }, - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 60 - }, - { - "color": "red", - "value": 75 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 3, - "x": 0, - "y": 6 - }, - "id": 39, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) / sum(kube_pod_container_resource_requests{namespace=\"$namespace\", pod=~\"$pod\", resource=\"cpu\", job=~\"$job\", cluster=\"$cluster\"})", - "instant": true, - "interval": "$resolution", - "legendFormat": "Requests", - "refId": "A" - } - ], - "title": "Total pod CPU Requests usage", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 60 - }, - { - "color": "red", - "value": 75 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 3, - "x": 3, - "y": 6 - }, - "id": 48, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) / sum(kube_pod_container_resource_limits{namespace=\"$namespace\", pod=~\"$pod\", resource=\"cpu\", job=~\"$job\", cluster=\"$cluster\"})", - "instant": true, - "interval": "$resolution", - "legendFormat": "Limits", - "refId": "A" - } - ], - "title": "Total pod CPU Limits usage", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "blue", - "mode": "fixed" - }, - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#EAB839", - "value": 80 - }, - { - "color": "red", - "value": 99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 3, - "x": 6, - "y": 6 - }, - "id": 40, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(container_memory_working_set_bytes{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}) / sum(kube_pod_container_resource_requests{namespace=\"$namespace\", pod=~\"$pod\", resource=\"memory\", job=~\"$job\", cluster=\"$cluster\"})", - "instant": true, - "interval": "$resolution", - "legendFormat": "Requests", - "refId": "A" - } - ], - "title": "Total pod RAM Requests usage", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 60 - }, - { - "color": "red", - "value": 75 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 3, - "x": 9, - "y": 6 - }, - "id": 49, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(container_memory_working_set_bytes{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}) / sum(kube_pod_container_resource_limits{namespace=\"$namespace\", pod=~\"$pod\", resource=\"memory\", job=~\"$job\", cluster=\"$cluster\"}) ", - "instant": true, - "interval": "$resolution", - "legendFormat": "Limits", - "refId": "B" - } - ], - "title": "Total pod RAM Limits usage", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "filterable": false, - "inspect": false, - "minWidth": 100 - }, - "decimals": 4, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Memory Requests" - }, - "properties": [ - { - "id": "unit", - "value": "bytes" - }, - { - "id": "decimals", - "value": 2 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Memory Limits" - }, - "properties": [ - { - "id": "unit", - "value": "bytes" - }, - { - "id": "decimals", - "value": 2 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Memory Used" - }, - "properties": [ - { - "id": "unit", - "value": "bytes" - }, - { - "id": "decimals", - "value": 2 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 6 - }, - "id": 38, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "10.4.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(kube_pod_container_resource_requests{namespace=\"$namespace\", pod=~\"$pod\", resource=\"cpu\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(kube_pod_container_resource_limits{namespace=\"$namespace\", pod=~\"$pod\", resource=\"cpu\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(kube_pod_container_resource_requests{namespace=\"$namespace\", pod=~\"$pod\", resource=\"memory\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(kube_pod_container_resource_limits{namespace=\"$namespace\", pod=~\"$pod\", resource=\"memory\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", container!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (container)", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(container_memory_working_set_bytes{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", container!=\"\", cluster=\"$cluster\"}) by (container)", - "format": "table", - "hide": false, - "instant": true, - "range": false, - "refId": "F" - } - ], - "title": "Resources by container", - "transformations": [ - { - "id": "seriesToColumns", - "options": { - "byField": "container" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Time 1": true, - "Time 2": true, - "Time 4": true, - "__name__": true, - "__name__ 1": true, - "__name__ 2": true, - "__name__ 3": true, - "__name__ 4": true, - "container": false, - "endpoint": true, - "endpoint 2": true, - "endpoint 3": true, - "endpoint 4": true, - "instance": true, - "instance 2": true, - "instance 3": true, - "instance 4": true, - "job": true, - "job 2": true, - "job 3": true, - "job 4": true, - "namespace": true, - "namespace 2": true, - "namespace 3": true, - "namespace 4": true, - "node": true, - "node 2": true, - "node 3": true, - "node 4": true, - "pod": true, - "pod 2": true, - "pod 3": true, - "pod 4": true, - "resource 1": true, - "resource 2": true, - "resource 3": true, - "resource 4": true, - "service": true, - "service 2": true, - "service 3": true, - "service 4": true, - "uid 1": true, - "uid 2": true, - "uid 3": true, - "uid 4": true, - "unit 1": true, - "unit 2": true, - "unit 3": true, - "unit 4": true - }, - "indexByName": { - "Time 1": 7, - "Time 2": 8, - "Time 3": 9, - "Time 4": 10, - "Time 5": 11, - "Time 6": 12, - "Value #A": 2, - "Value #B": 3, - "Value #C": 5, - "Value #D": 6, - "Value #E": 1, - "Value #F": 4, - "container": 0 - }, - "renameByName": { - "Value #A": "CPU Requests", - "Value #B": "CPU Limits", - "Value #C": "Memory Requests", - "Value #D": "Memory Limits", - "Value #E": "CPU Used", - "Value #F": "Memory Used", - "container": "Container" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Percent", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "area" - } - }, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "yellow", - "value": 20 - }, - { - "color": "green", - "value": 30 - }, - { - "color": "yellow", - "value": 70 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 50, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (container) / sum(kube_pod_container_resource_requests{namespace=\"$namespace\", pod=~\"$pod\", resource=\"cpu\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "interval": "$resolution", - "legendFormat": "{{`{{ container }}`}} REQUESTS", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (container) / sum(kube_pod_container_resource_limits{namespace=\"$namespace\", pod=~\"$pod\", resource=\"cpu\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "hide": false, - "legendFormat": "{{`{{ container }}`}} LIMITS", - "range": true, - "refId": "B" - } - ], - "title": "CPU Usage / Requests & Limits by container", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "blue", - "mode": "thresholds" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Percent", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "area" - } - }, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "yellow", - "value": 20 - }, - { - "color": "green", - "value": 30 - }, - { - "color": "#EAB839", - "value": 70 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 14 - }, - "id": 30, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}) by (container) / sum(kube_pod_container_resource_requests{namespace=\"$namespace\", pod=~\"$pod\", resource=\"memory\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "interval": "", - "legendFormat": "{{`{{ container }}`}} REQUESTS", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "expr": "sum(container_memory_working_set_bytes{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", cluster=\"$cluster\"}) by (container) / sum(kube_pod_container_resource_limits{namespace=\"$namespace\", pod=~\"$pod\", resource=\"memory\", job=~\"$job\", cluster=\"$cluster\"}) by (container)", - "hide": false, - "legendFormat": "{{`{{ container }}`}} LIMITS", - "range": true, - "refId": "B" - } - ], - "title": "Memory Usage / Requests & Limits by container", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "CPU Cores", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 4, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "limit" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#F2495C", - "mode": "fixed" - } - }, - { - "id": "custom.fillOpacity", - "value": 0 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 22 - }, - "id": 29, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", container!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (container)", - "interval": "$resolution", - "legendFormat": "{{`{{ container }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU Usage by container", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Bytes", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 22 - }, - "id": 51, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{namespace=\"$namespace\", pod=~\"$pod\", image!=\"\", container!=\"\", cluster=\"$cluster\"}) by (container)", - "interval": "", - "legendFormat": "{{`{{ container }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Memory Usage by container", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "SECONDS", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 30 - }, - "id": 59, - "options": { - "legend": { - "calcs": [ - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true, - "sortBy": "Max", - "sortDesc": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(rate(container_cpu_cfs_throttled_seconds_total{namespace=~\"$namespace\", pod=~\"$pod\", image!=\"\", container!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (container)", - "interval": "$resolution", - "legendFormat": "{{`{{ container }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "CPU Throttled seconds by container", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 38 - }, - "id": 62, - "panels": [], - "title": "Kubernetes", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "blue", - "mode": "thresholds" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Percent", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "area" - } - }, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "yellow", - "value": 20 - }, - { - "color": "green", - "value": 30 - }, - { - "color": "#EAB839", - "value": 70 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 39 - }, - "id": 60, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(container_oom_events_total{namespace=\"${namespace}\", pod=\"${pod}\", container!=\"\", cluster=\"$cluster\"}[$__rate_interval])) by (container)", - "interval": "", - "legendFormat": "{{`{{ container }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "OOM Events by container", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "blue", - "mode": "thresholds" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Percent", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "area" - } - }, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "yellow", - "value": 20 - }, - { - "color": "green", - "value": 30 - }, - { - "color": "#EAB839", - "value": 70 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 39 - }, - "id": 61, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(increase(kube_pod_container_status_restarts_total{namespace=~\"${namespace}\", pod=\"${pod}\", container!=\"\", job=~\"$job\", cluster=\"$cluster\"}[$__rate_interval])) by (container)", - "interval": "", - "legendFormat": "{{`{{ container }}`}}", - "range": true, - "refId": "A" - } - ], - "title": "Container Restarts by container", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 47 - }, - "id": 45, - "panels": [], - "targets": [ - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "refId": "A" - } - ], - "title": "Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 48 - }, - "id": 31, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(container_network_receive_bytes_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Received", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_bytes_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Transmitted", - "refId": "B" - } - ], - "title": "Network - Bandwidth", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "pps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 48 - }, - "id": 34, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(container_network_receive_packets_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Received", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_packets_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Transmitted", - "refId": "B" - } - ], - "title": "Network - Packets Rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "pps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 56 - }, - "id": 36, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(container_network_receive_packets_dropped_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Received", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_packets_dropped_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Transmitted", - "refId": "B" - } - ], - "title": "Network - Packets Dropped", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 25, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "pps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 56 - }, - "id": 37, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.3.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "sum(rate(container_network_receive_errors_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Received", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "exemplar": true, - "expr": "- sum(rate(container_network_transmit_errors_total{namespace=\"$namespace\", pod=~\"$pod\", cluster=\"$cluster\"}[$__rate_interval]))", - "interval": "$resolution", - "legendFormat": "Transmitted", - "refId": "B" - } - ], - "title": "Network - Errors", - "type": "timeseries" - } - ], - "refresh": "30s", - "schemaVersion": 39, - "tags": [ - "Kubernetes", - "Prometheus" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "", - "value": "" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "isNone": true, - "selected": false, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_node_info,cluster)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "cluster", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_node_info,cluster)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "monitoring", - "value": "monitoring" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_pod_info{cluster=\"$cluster\"}, namespace)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "namespace", - "options": [], - "query": { - "query": "label_values(kube_pod_info{cluster=\"$cluster\"}, namespace)", - "refId": "Prometheus-namespace-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_pod_info{namespace=\"$namespace\", cluster=\"$cluster\"}, pod)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "pod", - "options": [], - "query": { - "query": "label_values(kube_pod_info{namespace=\"$namespace\", cluster=\"$cluster\"}, pod)", - "refId": "Prometheus-pod-Variable-Query" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "includeAll": false, - "multi": false, - "name": "resolution", - "options": [ - { - "selected": false, - "text": "1s", - "value": "1s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - } - ], - "query": "1s, 15s, 30s, 1m, 3m, 5m", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "kube-state-metrics", - "value": "kube-state-metrics" - }, - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "definition": "label_values(kube_pod_info{namespace=\"$namespace\", cluster=\"$cluster\"},job)", - "hide": 0, - "includeAll": false, - "multi": true, - "name": "job", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(kube_pod_info{namespace=\"$namespace\", cluster=\"$cluster\"},job)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Kubernetes / Views / Pods", - "uid": "k8s_views_pods", - "version": 28, - "weekStart": "" - } -kind: ConfigMap -metadata: - annotations: - grafana_folder: Kubernetes - labels: - grafana_dashboard: "1" - name: dashboards-k8s-views-pods - namespace: prometheus diff --git a/attic/templates/resources/dashboards/gitlab-runner.yaml b/attic/templates/resources/dashboards/gitlab-runner.yaml deleted file mode 100644 index dc298651..00000000 --- a/attic/templates/resources/dashboards/gitlab-runner.yaml +++ /dev/null @@ -1,1822 +0,0 @@ -{{ if .Values.gitlab_runner.enabled }} -apiVersion: v1 -kind: ConfigMap -data: - gitlab-runner.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "Metrics from gitlab runners", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 14016, - "graphTooltip": 1, - "id": 31, - "iteration": 1697700881148, - "links": [], - "liveNow": false, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 43, - "panels": [], - "repeat": "app", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "refId": "A" - } - ], - "title": "About $app", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 5, - "w": 2, - "x": 0, - "y": 1 - }, - "id": 40, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "
\n \n
", - "mode": "html" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "transparent": true, - "type": "text" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 2, - "y": 1 - }, - "id": 12, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^version$/", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "gitlab_runner_version_info{app=~\"^$app$\"}", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "current version", - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 7, - "y": 1 - }, - "id": 41, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "/^Value$/", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "gitlab_runner_concurrent{app=~\"^$app$\"}", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "Concurrent job", - "range": false, - "refId": "A" - } - ], - "title": "Global concurrent jobs", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "names": [ - "kubernetes_pod_name", - "Value" - ] - } - } - } - ], - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 3, - "x": 11, - "y": 1 - }, - "id": 44, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "/^Value$/", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "gitlab_runner_limit{app=~\"^$app$\"}", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{runner}}`}}", - "range": false, - "refId": "A" - } - ], - "title": "Runner limits by token", - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "-1": { - "text": "no limit" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 14, - "y": 1 - }, - "id": 49, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "/^Value$/", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "gitlab_runner_jobs_total{app=~\"^$app$\"}", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{runner}}`}}", - "range": false, - "refId": "A" - } - ], - "title": "Total jobs executed", - "transparent": true, - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "-1": { - "text": "no limit" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-blue", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 5, - "x": 19, - "y": 1 - }, - "id": 54, - "interval": "30s", - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "/^Value$/", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(gitlab_runner_failed_jobs_total{app=~\"^$app$\"}) by (runner)", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "__auto", - "range": false, - "refId": "A" - } - ], - "title": "Total failed jobs", - "transparent": true, - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 6 - }, - "id": 32, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "refId": "A" - } - ], - "title": "General", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "count", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 100, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 7 - }, - "id": 64, - "interval": "30s", - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "sum", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true, - "sortBy": "Last", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "delta(gitlab_runner_jobs_total{app=~\"^$app$\"} [1m]) ", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "30s", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} : {{`{{runner}}`}} ", - "refId": "B" - } - ], - "title": "Executed jobs", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "count", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 100, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 7 - }, - "id": 53, - "interval": "30s", - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "sum", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true, - "sortBy": "Last", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(gitlab_runner_jobs{state=\"running\",app=~\"^$app$\"}) by (app,job,executor_stage,stage)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} : {{`{{job}}`}} : {{`{{executor_stage}}`}} : {{`{{stage}}`}} ", - "refId": "B" - } - ], - "title": "Runnig jobs phase", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "duration", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 63, - "interval": "30s", - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "sum", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true, - "sortBy": "Last", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum (rate(gitlab_runner_job_duration_seconds_sum [1m]) / rate(gitlab_runner_job_duration_seconds_count [1m])) by (app,runner,job,)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "30s", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} : {{`{{runner}}`}} : {{`{{job}}`}}", - "refId": "A" - } - ], - "title": "Average duration of jobs", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "count", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 100, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 36, - "interval": "30s", - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "sum", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true, - "sortBy": "Total", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "sum(delta(gitlab_runner_errors_total{app=~\"^$app$\"} [1m])) by (app,level)", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} : {{`{{level}}`}}", - "range": true, - "refId": "A" - } - ], - "title": "The number of caught errors", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "count", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 5, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 25 - }, - "id": 34, - "interval": "30s", - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "sum", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true, - "sortBy": "Last", - "sortDesc": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "exemplar": false, - "expr": "delta(gitlab_runner_api_request_statuses_total{app=~\"^$app$\"} [1m])", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} : api {{`{{endpoint}}`}} : status {{`{{status}}`}}", - "refId": "A" - } - ], - "title": "Total number of api requests", - "transparent": true, - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 34 - }, - "id": 28, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "refId": "A" - } - ], - "title": "Concurrency", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "count", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 35 - }, - "id": 24, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "gitlab_runner_request_concurrency{app=~\"^$app$\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} : {{`{{runner}}`}}", - "refId": "A" - } - ], - "title": "The current number of concurrent requests for a new job", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "count", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 35 - }, - "id": 22, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "delta(gitlab_runner_request_concurrency_exceeded_total{app=~\"^$app$\"} [2m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} : {{`{{ runner}}`}} ", - "refId": "A" - } - ], - "title": "Counter tracking exceeding of request concurrency", - "transparent": true, - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 44 - }, - "id": 52, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "6DmHLoFMz" - }, - "refId": "A" - } - ], - "title": "Process", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "(user and system)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "rate", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 3, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 45 - }, - "id": 47, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "rate(process_cpu_seconds_total{app=~\"^$app$\"} [1m]) * 100", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} ", - "range": true, - "refId": "A" - } - ], - "title": " CPU time spent ", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "count", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 45 - }, - "id": 48, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "process_open_fds{app=~\"^$app$\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} ", - "refId": "A" - } - ], - "title": "Number of open file descriptors", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "usage", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 5, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 54 - }, - "id": 45, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "process_virtual_memory_bytes{app=~\"^$app$\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} ", - "refId": "A" - } - ], - "title": "Virtual memory size in bytes", - "transparent": true, - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "usage", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 5, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 2, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 54 - }, - "id": 46, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "max", - "last" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.5.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "process_resident_memory_bytes{app=~\"^$app$\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{`{{app}}`}} ", - "refId": "A" - } - ], - "title": "Resident memory size in bytes", - "transparent": true, - "type": "timeseries" - } - ], - "refresh": "1m", - "schemaVersion": 36, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "isNone": true, - "selected": false, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(gitlab_runner_api_request_statuses_total, app)", - "hide": 0, - "includeAll": false, - "multi": true, - "name": "app", - "options": [], - "query": { - "query": "label_values(gitlab_runner_api_request_statuses_total, app)", - "refId": "StandardVariableQuery" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-3h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "Gitlab Runner Metrics", - "uid": "jTW2jWQmz", - "version": 1, - "weekStart": "" - } -metadata: - name: prom-gitlab-runner-dashboard - namespace: prometheus - labels: - grafana_dashboard: "1" -{{- end }} diff --git a/attic/templates/resources/dashboards/persistent-volume-usage.yaml b/attic/templates/resources/dashboards/persistent-volume-usage.yaml deleted file mode 100644 index 40e123ef..00000000 --- a/attic/templates/resources/dashboards/persistent-volume-usage.yaml +++ /dev/null @@ -1,1592 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: persistent-volumes - namespace: prometheus - labels: - grafana_dashboard: "1" - annotations: - grafana_folder: Kubernetes -data: - persistent-volumes.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "limit": 100, - "name": "Annotations & Alerts", - "showIn": 0, - "type": "dashboard" - } - ] - }, - "description": "Monitors all persistent volumes that exists within a Kubernetes cluster. Prometheus is used as datasource. ", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 13646, - "graphTooltip": 0, - "id": 48, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 26, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Alerts", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - }, - { - "color": "light-green", - "value": -0.0001 - }, - { - "color": "semi-dark-orange", - "value": 0.0001 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 0, - "y": 1 - }, - "id": 22, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "(\n count (\n (kubelet_volume_stats_available_bytes{namespace=~\"${k8s_namespace}\"})\n and\n (predict_linear(kubelet_volume_stats_available_bytes{namespace=~\"${k8s_namespace}\"}[1d], 2 * 24 * 60 * 60) < 0)\n )\n)\nor\nvector(0)", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs Full in 2 days - Based on Daily Usage", - "transformations": [ - { - "id": "organize", - "options": {} - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - }, - { - "color": "light-green", - "value": -0.0001 - }, - { - "color": "semi-dark-orange", - "value": 0.0001 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 8, - "y": 1 - }, - "id": 28, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "(\n count (\n (kubelet_volume_stats_available_bytes{namespace=~\"${k8s_namespace}\"})\n and\n (predict_linear(kubelet_volume_stats_available_bytes{namespace=~\"${k8s_namespace}\"}[1d], 5 * 24 * 60 * 60) < 0)\n )\n)\nor\nvector(0)", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs Full in 5 days - Based on Daily Usage", - "transformations": [ - { - "id": "organize", - "options": {} - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - }, - { - "color": "light-green", - "value": -0.0001 - }, - { - "color": "semi-dark-orange", - "value": 0.0001 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 27, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "(\n count (\n (kubelet_volume_stats_available_bytes{namespace=~\"${k8s_namespace}\"})\n and\n (predict_linear(kubelet_volume_stats_available_bytes{namespace=~\"${k8s_namespace}\"}[1d], 7 * 24 * 60 * 60) < 0)\n )\n)\nor\nvector(0)", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs Full in 1 Week - Based on Daily Usage", - "transformations": [ - { - "id": "organize", - "options": {} - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "semi-dark-red", - "value": null - }, - { - "color": "light-green", - "value": -0.0001 - }, - { - "color": "semi-dark-red", - "value": 0.0001 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 0, - "y": 5 - }, - "id": 21, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"} ) and (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"} )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes{namespace=~\"${k8s_namespace}\"} )) >= (${warning_threshold} / 100)) or vector (0)", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs Above Warning Threshold", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "semi-dark-red", - "value": null - }, - { - "color": "light-green", - "value": -0.0001 - }, - { - "color": "semi-dark-red", - "value": 0.0001 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 8, - "y": 5 - }, - "id": 24, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count((kube_persistentvolumeclaim_status_phase{namespace=~\"${k8s_namespace}\",phase=\"Pending\"}==1)) or vector(0)", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs in Pending State", - "transformations": [ - { - "id": "organize", - "options": {} - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "semi-dark-red", - "value": null - }, - { - "color": "light-green", - "value": -0.0001 - }, - { - "color": "semi-dark-red", - "value": 0.0001 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 5 - }, - "id": 23, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count((kube_persistentvolumeclaim_status_phase{namespace=~\"${k8s_namespace}\",phase=\"Lost\"}==1)) or vector(0)", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs in Lost State", - "transformations": [ - { - "id": "organize", - "options": {} - } - ], - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 17, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Usage statistics", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "cellOptions": { - "type": "auto" - }, - "filterable": false, - "inspect": false - }, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Used (%)" - }, - "properties": [ - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "gauge" - } - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - }, - { - "color": "semi-dark-yellow", - "value": 70 - }, - { - "color": "dark-red", - "value": 80 - } - ] - } - }, - { - "id": "decimals", - "value": 1 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Status" - }, - "properties": [ - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - }, - { - "id": "mappings", - "value": [ - { - "options": { - "0": { - "text": "Bound" - }, - "1": { - "text": "Pending" - }, - "2": { - "text": "Lost" - } - }, - "type": "value" - } - ] - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "light-green", - "value": null - }, - { - "color": "light-green", - "value": 0 - }, - { - "color": "semi-dark-orange", - "value": 1 - }, - { - "color": "semi-dark-red", - "value": 2 - } - ] - } - }, - { - "id": "noValue", - "value": "--" - }, - { - "id": "custom.align", - "value": "center" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Namespace" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Status" - }, - "properties": [ - { - "id": "custom.width", - "value": 80 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Capacity (GiB)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Used (GiB)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Available (GiB)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "StorageClass" - }, - "properties": [ - { - "id": "custom.width", - "value": 150 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "PersistentVolumeClaim" - }, - "properties": [ - { - "id": "custom.width", - "value": 370 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 29, - "interval": "", - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 2, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Used (%)" - } - ] - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": " sum by (persistentvolumeclaim,namespace,storageclass,volumename) (kube_persistentvolumeclaim_info{namespace=~\"${k8s_namespace}\"})", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum by (persistentvolumeclaim) (kubelet_volume_stats_capacity_bytes{namespace=~\"${k8s_namespace}\"}/1024/1024/1024)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum by (persistentvolumeclaim) (kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"}/1024/1024/1024)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum by (persistentvolumeclaim) (kubelet_volume_stats_available_bytes{namespace=~\"${k8s_namespace}\"}/1024/1024/1024)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum(kube_persistentvolumeclaim_status_phase{namespace=~\"${k8s_namespace}\",phase=~\"(Pending|Lost)\"}) by (persistentvolumeclaim) + sum(kube_persistentvolumeclaim_status_phase{namespace=~\"${k8s_namespace}\",phase=~\"(Lost)\"}) by (persistentvolumeclaim)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum by (persistentvolumeclaim) (kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"}/kubelet_volume_stats_capacity_bytes{namespace=~\"${k8s_namespace}\"} * 100)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "F" - } - ], - "title": "Persistent Volume Claim", - "transformations": [ - { - "id": "seriesToColumns", - "options": { - "byField": "persistentvolumeclaim" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Time 1": true, - "Time 2": true, - "Time 3": true, - "Time 4": true, - "Time 5": true, - "Time 6": true, - "Value #A": true - }, - "indexByName": {}, - "renameByName": { - "Time 1": "", - "Time 2": "", - "Time 3": "", - "Time 4": "", - "Time 5": "", - "Time 6": "", - "Value #A": "", - "Value #B": "Capacity (GiB)", - "Value #C": "Used (GiB)", - "Value #D": "Available (GiB)", - "Value #E": "Status", - "Value #F": "Used (%)", - "namespace": "Namespace", - "persistentvolumeclaim": "PersistentVolumeClaim", - "storageclass": "StorageClass", - "volumename": "PhysicalVolume" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "custom": { - "cellOptions": { - "type": "auto" - }, - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 24, - "x": 0, - "y": 22 - }, - "id": 7, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Status" - } - ] - }, - "pluginVersion": "11.2.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "kube_storageclass_info", - "format": "table", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Storage Class", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true, - "__name__": true, - "app_kubernetes_io_instance": true, - "app_kubernetes_io_name": true, - "instance": true, - "job": true, - "kubernetes_namespace": true, - "kubernetes_pod_name": true, - "pod_template_hash": true - }, - "indexByName": { - "Time": 1, - "Value": 13, - "__name__": 2, - "app_kubernetes_io_instance": 3, - "app_kubernetes_io_name": 4, - "instance": 5, - "job": 6, - "kubernetes_namespace": 7, - "kubernetes_pod_name": 8, - "pod_template_hash": 9, - "provisioner": 10, - "reclaimPolicy": 11, - "storageclass": 0, - "volumeBindingMode": 12 - }, - "renameByName": { - "provisioner": "Provisioner", - "reclaimPolicy": "ReclaimPolicy", - "storageclass": "StorageClass", - "volumeBindingMode": "VolumeBindingMode" - } - } - }, - { - "id": "groupBy", - "options": { - "fields": { - "Provisioner": { - "aggregations": [], - "operation": "groupby" - }, - "ReclaimPolicy": { - "aggregations": [], - "operation": "groupby" - }, - "StorageClass": { - "aggregations": [], - "operation": "groupby" - }, - "VolumeBindingMode": { - "aggregations": [], - "operation": "groupby" - } - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 27 - }, - "id": 15, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Graphical usage data ", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 12, - "w": 24, - "x": 0, - "y": 28 - }, - "id": 9, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max", - "min" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "7.2.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"}))", - "interval": "", - "legendFormat": "{{`{{namespace}}`}} ({{`{{persistentvolumeclaim}}`}})", - "refId": "A" - } - ], - "title": "All Running PVCs Used Bytes", - "type": "timeseries" - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 40 - }, - "id": 19, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 41 - }, - "hiddenSeries": false, - "id": 11, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "rate(kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"}[1h])", - "instant": false, - "interval": "", - "legendFormat": "{{`{{namespace}}`}} ({{`{{persistentvolumeclaim}}`}})", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Hourly Volume Usage Rate", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "binBps", - "logBase": 1, - "show": true - }, - { - "format": "Date & time", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 48 - }, - "hiddenSeries": false, - "id": 12, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "rate(kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"}[1d])", - "interval": "", - "legendFormat": "{{`{{namespace}}`}} ({{`{{persistentvolumeclaim}}`}})", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Daily Volume Usage Rate", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "binBps", - "logBase": 1, - "show": true - }, - { - "format": "Date & time", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 55 - }, - "hiddenSeries": false, - "id": 13, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.2.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "rate(kubelet_volume_stats_used_bytes{namespace=~\"${k8s_namespace}\"}[1w])", - "instant": false, - "interval": "", - "legendFormat": "{{`{{namespace}}`}} ({{`{{persistentvolumeclaim}}`}})", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Weekly Volume Usage Rate", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "binBps", - "logBase": 1, - "show": true - }, - { - "format": "Date & time", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - } - ], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Usage Rate", - "type": "row" - } - ], - "refresh": "1m", - "schemaVersion": 39, - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "prometheus" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(namespace)", - "hide": 0, - "includeAll": true, - "label": "Namespace", - "multi": true, - "name": "k8s_namespace", - "options": [], - "query": "label_values(namespace)", - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "80", - "value": "80" - }, - "hide": 2, - "label": "PVC % Used Warning Threshold", - "name": "warning_threshold", - "options": [ - { - "selected": true, - "text": "80", - "value": "80" - } - ], - "query": "80", - "skipUrlSync": false, - "type": "textbox" - } - ] - }, - "time": { - "from": "now-24h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "kubernetes-persistent-volumes", - "uid": "peR80gTGk", - "version": 1, - "weekStart": "" - } diff --git a/attic/templates/resources/dashboards/rabbitmq.yaml b/attic/templates/resources/dashboards/rabbitmq.yaml deleted file mode 100644 index 517da704..00000000 --- a/attic/templates/resources/dashboards/rabbitmq.yaml +++ /dev/null @@ -1,372 +0,0 @@ -{{- if .Values.rabbitmq_operator.enabled }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: rabbitmq-overview-dashboard - namespace: prometheus - labels: - grafana_dashboard: "1" -data: - # https://grafana.com/grafana/dashboards/10991 - rabbitmq-overview-dashboard.json.url: "https://github.com/rabbitmq/rabbitmq-server/raw/e57c579d1a71b283469defdd0d6d45313e6d6daf/deps/rabbitmq_prometheus/docker/grafana/dashboards/RabbitMQ-Overview.json" ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: rabbitmq-queue-grafana-dashboard - namespace: prometheus - labels: - grafana_dashboard: "1" -data: - rabbitmq-queue-grafana-dashboard.json: |- - { - "__inputs":[ - { - "name":"DS_PROMETHEUS", - "label":"prometheus", - "description":"", - "type":"datasource", - "pluginId":"prometheus", - "pluginName":"Prometheus" - } - ], - "__elements":{ - - }, - "__requires":[ - { - "type":"grafana", - "id":"grafana", - "name":"Grafana", - "version":"8.3.4" - }, - { - "type":"datasource", - "id":"prometheus", - "name":"Prometheus", - "version":"1.0.0" - }, - { - "type":"panel", - "id":"timeseries", - "name":"Time series", - "version":"" - } - ], - "annotations":{ - "list":[ - { - "builtIn":1, - "datasource":{ - "type":"datasource", - "uid":"grafana" - }, - "enable":true, - "hide":true, - "iconColor":"rgba(0, 211, 255, 1)", - "name":"Annotations & Alerts", - "target":{ - "limit":100, - "matchAny":false, - "tags":[ - - ], - "type":"dashboard" - }, - "type":"dashboard" - } - ] - }, - "editable":true, - "fiscalYearStartMonth":0, - "graphTooltip":0, - "id":null, - "links":[ - - ], - "liveNow":false, - "panels":[ - { - "datasource":{ - "type":"prometheus", - "uid":"${DS_PROMETHEUS}" - }, - "fieldConfig":{ - "defaults":{ - "color":{ - "mode":"palette-classic" - }, - "custom":{ - "axisCenteredZero":false, - "axisColorMode":"text", - "axisLabel":"Messages", - "axisPlacement":"left", - "axisSoftMin":0, - "barAlignment":0, - "drawStyle":"line", - "fillOpacity":0, - "gradientMode":"none", - "hideFrom":{ - "graph":false, - "legend":false, - "tooltip":false, - "viz":false - }, - "lineInterpolation":"linear", - "lineWidth":1, - "pointSize":5, - "scaleDistribution":{ - "type":"linear" - }, - "showPoints":"auto", - "spanNulls":false, - "stacking":{ - "group":"A", - "mode":"none" - }, - "thresholdsStyle":{ - "mode":"off" - } - }, - "mappings":[ - - ], - "thresholds":{ - "mode":"absolute", - "steps":[ - { - "color":"green", - "value":null - }, - { - "color":"red", - "value":80 - } - ] - } - }, - "overrides":[ - { - "matcher":{ - "id":"byName", - "options":"Consumers" - }, - "properties":[ - { - "id":"custom.axisPlacement", - "value":"right" - }, - { - "id":"unit", - "value":"prefix:" - }, - { - "id":"custom.axisLabel", - "value":"Consumers" - } - ] - }, - { - "matcher":{ - "id":"byName", - "options":"Messages" - }, - "properties":[ - { - "id":"custom.drawStyle", - "value":"line" - }, - { - "id":"custom.fillOpacity", - "value":0 - } - ] - } - ] - }, - "gridPos":{ - "h":20, - "w":24, - "x":0, - "y":0 - }, - "id":2, - "options":{ - "legend":{ - "calcs":[ - - ], - "displayMode":"list", - "placement":"bottom", - "showLegend":true - }, - "tooltip":{ - "mode":"single", - "sort":"none" - } - }, - "targets":[ - { - "datasource":{ - "type":"prometheus", - "uid":"${DS_PROMETHEUS}" - }, - "editorMode":"code", - "expr":"(rabbitmq_detailed_queue_messages{namespace=\"$namespace\", queue=\"$queue\"} * on (instance, job) rabbitmq_identity_info{namespace=\"$namespace\",rabbitmq_cluster=\"$rabbitmq_cluster\"})", - "legendFormat":"Messages ({{`{{job}}`}} | {{`{{instance}}`}})", - "range":true, - "refId":"A" - }, - { - "datasource":{ - "type":"prometheus", - "uid":"${DS_PROMETHEUS}" - }, - "editorMode":"code", - "expr":"rabbitmq_detailed_queue_consumers{namespace=\"$namespace\", queue=\"$queue\"} * on (instance, job) rabbitmq_identity_info{namespace=\"$namespace\",rabbitmq_cluster=\"$rabbitmq_cluster\"}", - "legendFormat":"Consumers ({{`{{job}}`}} | {{`{{instance}}`}})", - "range":true, - "refId":"B" - } - ], - "title":"Queue messages and consumers", - "type":"timeseries" - } - ], - "refresh":"10s", - "revision":1, - "schemaVersion":38, - "style":"dark", - "tags":[ - "rabbitmq-prometheus" - ], - "templating":{ - "list":[ - { - "current":{ - "selected":false, - "text":"default", - "value":"default" - }, - "hide":2, - "includeAll":false, - "label":"datasource", - "multi":false, - "name":"DS_PROMETHEUS", - "options":[ - - ], - "query":"prometheus", - "refresh":1, - "regex":"", - "skipUrlSync":false, - "type":"datasource", - "datasource":"${DS_PROMETHEUS}" - }, - { - "current":{ - - }, - "datasource":{ - "type":"prometheus", - "uid":"${DS_PROMETHEUS}" - }, - "definition":"label_values(rabbitmq_identity_info, namespace)", - "hide":0, - "includeAll":false, - "label":"Namespace", - "multi":false, - "name":"namespace", - "options":[ - - ], - "query":{ - "query":"label_values(rabbitmq_identity_info, namespace)", - "refId":"StandardVariableQuery" - }, - "refresh":2, - "regex":"", - "skipUrlSync":false, - "sort":1, - "tagValuesQuery":"", - "tagsQuery":"", - "type":"query", - "useTags":false - }, - { - "current":{ - - }, - "datasource":{ - "type":"prometheus", - "uid":"${DS_PROMETHEUS}" - }, - "definition":"label_values(rabbitmq_identity_info{namespace=\"$namespace\"}, rabbitmq_cluster)", - "hide":0, - "includeAll":false, - "label":"RabbitMQ Cluster", - "multi":false, - "name":"rabbitmq_cluster", - "options":[ - - ], - "query":{ - "query":"label_values(rabbitmq_identity_info{namespace=\"$namespace\"}, rabbitmq_cluster)", - "refId":"StandardVariableQuery" - }, - "refresh":2, - "regex":"", - "skipUrlSync":false, - "sort":1, - "tagValuesQuery":"", - "tagsQuery":"", - "type":"query", - "useTags":false - }, - { - "current":{ - - }, - "datasource":{ - "type":"prometheus", - "uid":"${DS_PROMETHEUS}" - }, - "definition":"query_result(rabbitmq_detailed_queue_messages{namespace=\"$namespace\"} * on (instance, job) group_left(rabbitmq_cluster) rabbitmq_identity_info{namespace=\"$namespace\"})", - "hide":0, - "includeAll":false, - "label":"Queue", - "multi":false, - "name":"queue", - "options":[ - - ], - "query":{ - "query":"query_result(rabbitmq_detailed_queue_messages{namespace=\"$namespace\"} * on (instance, job) group_left(rabbitmq_cluster) rabbitmq_identity_info{namespace=\"$namespace\", rabbitmq_cluster=\"$rabbitmq_cluster\"})", - "refId":"StandardVariableQuery" - }, - "refresh":2, - "regex":"/.*queue=\"([^\"]+)\".*/", - "skipUrlSync":false, - "sort":0, - "tagValuesQuery":"", - "tagsQuery":"", - "type":"query", - "useTags":false - } - ] - }, - "time":{ - "from":"now-15m", - "to":"now" - }, - "timepicker":{ - - }, - "timezone":"", - "title":"RabbitMQ-Queue", - "uid":"j9t8vwH7k", - "version":3, - "weekStart":"" - } -{{- end }} diff --git a/attic/templates/resources/dashboards/velero.yaml b/attic/templates/resources/dashboards/velero.yaml deleted file mode 100644 index 6874bdec..00000000 --- a/attic/templates/resources/dashboards/velero.yaml +++ /dev/null @@ -1,2214 +0,0 @@ -{{- if .Values.velero.enabled }} -apiVersion: v1 -data: - velero.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "Velero Stats maintained by Velero team", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 16829, - "graphTooltip": 1, - "id": 34, - "iteration": 1678979743251, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 15, - "panels": [], - "title": "Backup", - "type": "row" - }, - { - "datasource": "prometheus", - "description": "The sum of one-off backup and schedule backup success total ", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 0, - "y": 1 - }, - "id": 23, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "velero_backup_total", - "format": "time_series", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Backup Success Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 4, - "y": 1 - }, - "id": 22, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(velero_backup_success_total{schedule=~\"$schedule\"}) / sum(velero_backup_attempt_total{schedule=~\"$schedule\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Backup Success Rate", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 8, - "y": 1 - }, - "id": 26, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(velero_backup_deletion_success_total{schedule=~\"$schedule\"}) / sum(velero_backup_deletion_attempt_total{schedule=~\"$schedule\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Backup Deletion Success Rate", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 12, - "y": 1 - }, - "id": 25, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(velero_volume_snapshot_success_total{schedule=~\"$schedule\"}) / sum(velero_volume_snapshot_attempt_total{schedule=~\"$schedule\"})\n", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Volume snapshot Success Rate", - "type": "gauge" - }, - { - "columns": [ - { - "$$hashKey": "object:462", - "text": "Current", - "value": "current" - } - ], - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "description": "for schedule backup use only", - "fontSize": "100%", - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 13, - "scroll": true, - "showHeader": true, - "sort": { - "col": 0, - "desc": false - }, - "styles": [ - { - "alias": "Time", - "align": "auto", - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Time", - "type": "date" - }, - { - "alias": "Hours since last backup", - "align": "auto", - "colorMode": "row", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "decimals": 2, - "pattern": "Current", - "thresholds": [ - "24", - "48" - ], - "type": "number", - "unit": "short" - } - ], - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "(time() - velero_backup_last_successful_timestamp{schedule!=\"\"}) / 60 / 60", - "instant": true, - "interval": "", - "legendFormat": "{{`{{schedule}}`}}", - "refId": "A" - } - ], - "title": "Hours since last Backup", - "transform": "timeseries_aggregations", - "type": "table-old" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 10 - }, - "hiddenSeries": false, - "id": 8, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_success_total{schedule=~\"$schedule\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "Backup success", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup failure", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_partial_failure_total{schedule=~\"$schedule\"}[1h])))", - "instant": false, - "interval": "", - "legendFormat": "Backup partial failure", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_deletion_success_total{schedule=~\"$schedule\"}[1h])))", - "instant": false, - "interval": "", - "legendFormat": "Backup deletion success", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_deletion_failure_total{schedule=~\"$schedule\"}[1h])))", - "instant": false, - "interval": "", - "legendFormat": "Backup deletion failure", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "sum(avg_over_time(velero_backup_items_total{schedule=~\"$schedule\"}[1h]))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup items total", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "sum(avg_over_time(velero_backup_items_errors{schedule=~\"$schedule\"}[1h]))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup items errors_total", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_backup_validation_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup validation failure", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_volume_snapshot_success_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup volume snapshot success", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_volume_snapshot_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Backup volume snapshot failure", - "refId": "J" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Backup per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "cards": {}, - "color": { - "cardColor": "#1F60C4", - "colorScale": "linear", - "colorScheme": "interpolateSpectral", - "exponent": 0.5, - "mode": "spectrum" - }, - "dataFormat": "tsbuckets", - "datasource": "prometheus", - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 19 - }, - "heatmap": {}, - "hideZeroBuckets": false, - "highlightCards": true, - "id": 34, - "legend": { - "show": true - }, - "reverseYBuckets": false, - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(increase(velero_backup_duration_seconds_bucket{schedule=~\"$schedule\",le!=\"+Inf\"}[1h])) by (le)", - "format": "heatmap", - "hide": false, - "interval": "", - "legendFormat": "{{`{{le}}`}}", - "refId": "B" - } - ], - "title": "Backup time heatmap", - "tooltip": { - "show": true, - "showHistogram": true - }, - "type": "heatmap", - "xAxis": { - "show": true - }, - "yAxis": { - "format": "s", - "logBase": 1, - "show": true - }, - "yBucketBound": "auto" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 27 - }, - "hiddenSeries": false, - "id": 18, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(avg_over_time(velero_backup_tarball_size_bytes{schedule=~\"$schedule\"}[15m]))", - "interval": "", - "legendFormat": "{{`{{schedule}}`}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Backup Size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:561", - "decimals": 0, - "format": "decbytes", - "label": "", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:562", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 17, - "panels": [], - "title": "Restore", - "type": "row" - }, - { - "datasource": "prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 0, - "y": 34 - }, - "id": 27, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "velero_restore_total", - "format": "time_series", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Restore Success Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 4, - "y": 34 - }, - "id": 24, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(velero_restore_success_total{schedule=~\"$schedule\"}) / sum(velero_restore_attempt_total{schedule=~\"$schedule\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Restore Success Rate", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 16, - "x": 8, - "y": 34 - }, - "hiddenSeries": false, - "id": 28, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_success_total{schedule=~\"$schedule\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "Restore success", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_failed_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "Restore failure", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_validation_failed_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "Restore validation failure", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_restore_partial_failure_total{schedule=~\"$schedule\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "Restore partial failure", - "refId": "D" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Restore per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 43 - }, - "id": 30, - "panels": [], - "title": "CSI", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 44 - }, - "hiddenSeries": false, - "id": 32, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_csi_snapshot_attempt_total{schedule=~\"$schedule\", backupName=~\"$csi_backup_name\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "CSI Snapshot attempt", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_csi_snapshot_success_total{schedule=~\"$schedule\", backupName=~\"$csi_backup_name\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "CSI Snapshot success", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(velero_csi_snapshot_failure_total{schedule=~\"$schedule\", backupName=~\"$csi_backup_name\"}[1h])))", - "hide": false, - "interval": "", - "legendFormat": "CSI Snapshot failure", - "refId": "C" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "CSI per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 53 - }, - "id": 36, - "panels": [], - "title": "Restic", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 0, - "y": 54 - }, - "id": 37, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(restic_pod_volume_backup_dequeue_count{node=~\"$restic_node\"}) / sum(restic_pod_volume_backup_enqueue_count{node=~\"$restic_node\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Restic Success Rate", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 20, - "x": 4, - "y": 54 - }, - "hiddenSeries": false, - "id": 38, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(restic_pod_volume_backup_enqueue_count{node=~\"$restic_node\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "Restic enqueue", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "round(sum(increase(restic_pod_volume_backup_dequeue_count{node=~\"$restic_node\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "Restic dequeue", - "refId": "B" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Restic per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 63 - }, - "hiddenSeries": false, - "id": 39, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(avg_over_time(restic_restic_operation_latency_seconds_gauge{backupName=~\"$restic_backup_name\", node=~\"$restic_node\", operation=~\"$restic_operation\", pod_volume_backup=~\"$restic_pvb_name\"}[15m]))", - "interval": "", - "legendFormat": "Avg over time", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Restic time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:561", - "decimals": 0, - "format": "s", - "label": "", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:562", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 69 - }, - "id": 43, - "panels": [], - "title": "File System Backup(for v1.10 and later)", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#d44a3a" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.95 - }, - { - "color": "#299c46", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 4, - "x": 0, - "y": 70 - }, - "id": 41, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(pod_volume_backup_dequeue_count{node=~\"$fsb_node\"}) / sum(pod_volume_backup_enqueue_count{node=~\"$fsb_node\"})", - "format": "time_series", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "FSB Success Rate", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 20, - "x": 4, - "y": 70 - }, - "hiddenSeries": false, - "id": 45, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sort": "avg", - "sortDesc": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "round(sum(increase(pod_volume_backup_enqueue_count{node=~\"$fsb_node\"}[1h])))", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "FSB enqueue", - "refId": "A" - }, - { - "datasource": "prometheus", - "exemplar": false, - "expr": "round(sum(increase(pod_volume_backup_dequeue_count{node=~\"$fsb_node\"}[1h])))", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "FSB dequeue", - "refId": "B" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "FSB per hour", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:124", - "decimals": 0, - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:125", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 79 - }, - "hiddenSeries": false, - "id": 47, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null as zero", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": "prometheus", - "exemplar": false, - "expr": "sum(avg_over_time(pod_volume_operation_latency_seconds_gauge{backupName=~\"$fsb_backup_name\", node=~\"$fsb_node\", operation=~\"$fsb_operation\", pod_volume_backup=~\"$fsb_pvb_name\"}[15m]))", - "interval": "", - "legendFormat": "Avg over time", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "FSB time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:561", - "decimals": 0, - "format": "s", - "label": "", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:562", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - } - ], - "refresh": false, - "schemaVersion": 36, - "style": "dark", - "tags": [ - "velero" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "k0", - "value": "k0" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "$datasource" - }, - "definition": "label_values(velero_backup_attempt_total, schedule)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "schedule", - "options": [], - "query": { - "query": "label_values(velero_backup_attempt_total, schedule)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(velero_csi_snapshot_attempt_total, backupName)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "csi_backup_name", - "options": [], - "query": { - "query": "label_values(velero_csi_snapshot_attempt_total, backupName)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(restic_pod_volume_backup_enqueue_count, node)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_node", - "options": [], - "query": { - "query": "label_values(restic_pod_volume_backup_enqueue_count, node)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(restic_restic_operation_latency_seconds_gauge, backupName)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_backup_name", - "options": [], - "query": { - "query": "label_values(restic_restic_operation_latency_seconds_gauge, backupName)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(restic_restic_operation_latency_seconds_gauge, operation)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_operation", - "options": [], - "query": { - "query": "label_values(restic_restic_operation_latency_seconds_gauge, operation)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(restic_restic_operation_latency_seconds_gauge, pod_volume_backup)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "restic_pvb_name", - "options": [], - "query": { - "query": "label_values(restic_restic_operation_latency_seconds_gauge, pod_volume_backup)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(pod_volume_backup_enqueue_count, node)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "fsb_node", - "options": [], - "query": { - "query": "label_values(pod_volume_backup_enqueue_count, node)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(pod_volume_operation_latency_seconds_gauge, backupName)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "fsb_backup_name", - "options": [], - "query": { - "query": "label_values(pod_volume_operation_latency_seconds_gauge, backupName)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(pod_volume_operation_latency_seconds_gauge, operation)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "fsb_operation", - "options": [], - "query": { - "query": "label_values(pod_volume_operation_latency_seconds_gauge, operation)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(pod_volume_operation_latency_seconds_gauge, pod_volume_backup)", - "hide": 0, - "includeAll": true, - "multi": false, - "name": "fsb_pvb_name", - "options": [], - "query": { - "query": "label_values(pod_volume_operation_latency_seconds_gauge, pod_volume_backup)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - } - ] - }, - "time": { - "from": "now-2d", - "to": "now" - }, - "timepicker": { - "hidden": false, - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Kubernetes/Tanzu/Velero", - "uid": "EbXSjT24k", - "version": 2, - "weekStart": "" - } -kind: ConfigMap -metadata: - name: velero-dashboard - namespace: prometheus - labels: - grafana_dashboard: "1" -{{- end }} diff --git a/attic/templates/resources/dashboards/x509-exporter-dashbaoard.yaml b/attic/templates/resources/dashboards/x509-exporter-dashbaoard.yaml deleted file mode 100644 index 01a9bc0a..00000000 --- a/attic/templates/resources/dashboards/x509-exporter-dashbaoard.yaml +++ /dev/null @@ -1,2011 +0,0 @@ -{{- if .Values.x509_exporter.enabled }} -apiVersion: v1 -data: - x509-dash.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "Unified dashboard for checking certificates expiration: Kubernetes Secrets, certificate files on nodes, or on any server.", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 13922, - "graphTooltip": 0, - "iteration": 1678705600458, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 24, - "panels": [], - "title": "Overview", - "type": "row" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "super-light-blue" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 0, - "y": 1 - }, - "id": 2, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "count(x509_cert_not_after)", - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Total Certificates", - "type": "stat" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "dark-red", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 5, - "y": 1 - }, - "id": 18, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "sum(((x509_cert_not_after - time()) / 86400) < bool 0)", - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Expired", - "type": "stat" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 8, - "y": 1 - }, - "id": 19, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "sum(0 < ((x509_cert_not_after - time()) / 86400) < bool $critical_threshold)", - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Expiring within $critical_threshold days", - "type": "stat" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "yellow", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 11, - "y": 1 - }, - "id": 20, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "sum(0 < ((x509_cert_not_after - time()) / 86400) < bool $warning_threshold)", - "instant": false, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Expiring within $warning_threshold days", - "type": "stat" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "super-light-blue" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 14, - "y": 1 - }, - "id": 17, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "count(x509_read_errors)", - "instant": false, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Exporters", - "type": "stat" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 14, - "y": 4 - }, - "id": 36, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "sum(x509_read_errors)", - "instant": false, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Exporter Errors", - "type": "stat" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 26, - "panels": [], - "title": "Expiration", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Because of a missing feature in Grafana, critical and warning thresholds from dashboard variables will not affect coloration of the Time Left column in this table.\n\nThresholds are to be set manually in the Overrides settings for this widget.\n\nPlease vote or contribute to issue : https://github.com/grafana/grafana/issues/922", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "displayMode": "auto", - "filterable": true, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red" - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Time Left" - }, - "properties": [ - { - "id": "custom.align", - "value": "center" - }, - { - "id": "custom.width", - "value": 200 - }, - { - "id": "custom.filterable", - "value": false - }, - { - "id": "custom.displayMode", - "value": "color-background" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red" - }, - { - "color": "red", - "value": 0 - }, - { - "color": "yellow", - "value": 7 - }, - { - "color": "green", - "value": 28 - } - ] - } - }, - { - "id": "unit", - "value": "d" - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 46, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "sort(((x509_cert_not_after{secret_name!=\"linkerd-identity-issuer\", issuer_O=\"\", issuer_CN!=\"webhook.linkerd.cluster.local\"} - time()) / 86400) < $list_threshold)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Kubernetes Secrets (no issuer) (time left < $list_threshold days)", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "pattern": "^(subject_CN|secret_namespace|secret_name|Value)$" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Value": 3, - "secret_name": 2, - "secret_namespace": 1, - "subject_CN": 0 - }, - "renameByName": { - "Value": "Time Left", - "secret_name": "Secret Name", - "secret_namespace": "Secret Namespace", - "subject_CN": "Subject CN" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Because of a missing feature in Grafana, critical and warning thresholds from dashboard variables will not affect coloration of the Time Left column in this table.\n\nThresholds are to be set manually in the Overrides settings for this widget.\n\nPlease vote or contribute to issue : https://github.com/grafana/grafana/issues/922", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "displayMode": "auto", - "filterable": true, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Time Left" - }, - "properties": [ - { - "id": "custom.align", - "value": "center" - }, - { - "id": "custom.width", - "value": 200 - }, - { - "id": "custom.filterable", - "value": false - }, - { - "id": "custom.displayMode", - "value": "color-background" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red", - "value": null - }, - { - "color": "red", - "value": 0 - }, - { - "color": "#EAB839", - "value": 7 - }, - { - "color": "green", - "value": 28 - } - ] - } - }, - { - "id": "unit", - "value": "d" - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 8 - }, - "id": 47, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": false, - "expr": "sort(((x509_cert_not_after{issuer_O!=\"\"} - time()) / 86400) < $list_threshold)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Kubernetes Secrets (with issuer) (time left < $list_threshold days)", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "pattern": "^(subject_CN|secret_namespace|secret_name|Value)$" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Value": 3, - "secret_name": 2, - "secret_namespace": 1, - "subject_CN": 0 - }, - "renameByName": { - "Value": "Time Left", - "filepath": "File Path", - "instance": "Instance", - "subject_CN": "Subject CN" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 21 - }, - "id": 12, - "panels": [], - "title": "Charts", - "type": "row" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Certificate Count" - }, - "properties": [ - { - "id": "custom.align", - "value": "center" - }, - { - "id": "custom.width", - "value": 150 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 8, - "x": 0, - "y": 22 - }, - "id": 14, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "topk(10, sort_desc(count by (issuer_CN) (x509_cert_not_after)))", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Top Issuers", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "names": [ - "issuer_CN", - "Value" - ] - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "Value": "Certificate Count", - "issuer_CN": "Issuer CN" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Certificate Count" - }, - "properties": [ - { - "id": "custom.align", - "value": "center" - }, - { - "id": "custom.width", - "value": 150 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 8, - "x": 8, - "y": 22 - }, - "id": 15, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "topk(10, sort_desc(count by (secret_namespace) (x509_cert_not_after{secret_namespace!=\"\"})))", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Top Namespaces (Kubernetes Secrets)", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "names": [ - "Value", - "secret_namespace" - ] - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "Value": "Certificate Count", - "secret_namespace": "Namespace" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Days" - }, - "properties": [ - { - "id": "custom.align", - "value": "center" - }, - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Secret Namespace" - }, - "properties": [ - { - "id": "custom.width", - "value": 258 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 0, - "y": 34 - }, - "id": 31, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "bottomk(10, (x509_cert_not_after{secret_name!=\"\"} - x509_cert_not_before) / 86400)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Kubernetes Secrets : Shortest Validity Period", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "pattern": "^(subject_CN|secret_namespace|secret_name|Value)$" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Value": 3, - "secret_name": 2, - "secret_namespace": 1, - "subject_CN": 0 - }, - "renameByName": { - "Value": "Days", - "secret_name": "Secret Name", - "secret_namespace": "Secret Namespace", - "subject_CN": "Subject CN" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Days" - }, - "properties": [ - { - "id": "custom.align", - "value": "center" - }, - { - "id": "custom.width", - "value": 100 - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 34 - }, - "id": 28, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "topk(10, (x509_cert_not_after{secret_name!=\"\"} - x509_cert_not_before) / 86400)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Kubernetes Secrets : Longest Validity Period", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "pattern": "^(subject_CN|secret_namespace|secret_name|Value)$" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": { - "Value": 3, - "secret_name": 2, - "secret_namespace": 1, - "subject_CN": 0 - }, - "renameByName": { - "Value": "Days", - "secret_name": "Secret Name", - "secret_namespace": "Secret Namespace", - "subject_CN": "Subject CN" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 46 - }, - "id": 35, - "panels": [], - "title": "Exporters", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 47 - }, - "hiddenSeries": false, - "id": 38, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "count(x509_read_errors)", - "interval": "", - "legendFormat": "exporters", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Reporting Exporters", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:237", - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:238", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": { - "exporters with errors": "red" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 47 - }, - "hiddenSeries": false, - "id": 39, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum (x509_read_errors > bool 0)", - "interval": "", - "legendFormat": "exporters with errors", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Exporters with Errors", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:237", - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:238", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": { - "error rate": "red", - "errors": "red" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 55 - }, - "hiddenSeries": false, - "id": 41, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(x509_read_errors[15m]))", - "interval": "", - "legendFormat": "error rate", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Error Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:237", - "format": "cps", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:238", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": { - "errors": "red" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 55 - }, - "hiddenSeries": false, - "id": 40, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(x509_read_errors)", - "interval": "", - "legendFormat": "errors", - "queryType": "randomWalk", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Cumulative Errors", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:237", - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:238", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Rate" - }, - "properties": [ - { - "id": "custom.width", - "value": 150 - }, - { - "id": "custom.align", - "value": "center" - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 0, - "y": 63 - }, - "id": 43, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "topk(10, rate(x509_read_errors[6h]))", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Top Exporters by Error Rate", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "pattern": "^(instance|Value)$" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "Value": "Rate", - "instance": "Instance" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Errors" - }, - "properties": [ - { - "id": "custom.width", - "value": 150 - }, - { - "id": "custom.align", - "value": "center" - } - ] - } - ] - }, - "gridPos": { - "h": 12, - "w": 12, - "x": 12, - "y": 63 - }, - "id": 44, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "expr": "topk(10, x509_read_errors)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "title": "Top Exporters by Cumulative Errors", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "pattern": "^(instance|Value)$" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "Value": "Errors", - "instance": "Instance" - } - } - } - ], - "type": "table" - } - ], - "refresh": "", - "schemaVersion": 36, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "DS_PROMETHEUS", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "selected": false, - "text": "7", - "value": "7" - }, - "hide": 0, - "includeAll": false, - "label": "Critical Threshold (days)", - "multi": false, - "name": "critical_threshold", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": true, - "text": "7", - "value": "7" - }, - { - "selected": false, - "text": "14", - "value": "14" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": false, - "text": "28", - "value": "28" - }, - { - "selected": false, - "text": "30", - "value": "30" - }, - { - "selected": false, - "text": "60", - "value": "60" - }, - { - "selected": false, - "text": "90", - "value": "90" - }, - { - "selected": false, - "text": "180", - "value": "180" - }, - { - "selected": false, - "text": "365", - "value": "365" - } - ], - "query": "1,7,14,15,28,30,60,90,180,365", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "28", - "value": "28" - }, - "hide": 0, - "includeAll": false, - "label": "Warning Threshold (days)", - "multi": false, - "name": "warning_threshold", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": false, - "text": "7", - "value": "7" - }, - { - "selected": false, - "text": "14", - "value": "14" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": true, - "text": "28", - "value": "28" - }, - { - "selected": false, - "text": "30", - "value": "30" - }, - { - "selected": false, - "text": "60", - "value": "60" - }, - { - "selected": false, - "text": "90", - "value": "90" - }, - { - "selected": false, - "text": "180", - "value": "180" - }, - { - "selected": false, - "text": "365", - "value": "365" - } - ], - "query": "1,7,14,15,28,30,60,90,180,365", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": true, - "text": "7300", - "value": "7300" - }, - "hide": 0, - "includeAll": false, - "label": "List expiring in less than (days)", - "multi": false, - "name": "list_threshold", - "options": [ - { - "selected": false, - "text": "1", - "value": "1" - }, - { - "selected": false, - "text": "7", - "value": "7" - }, - { - "selected": false, - "text": "15", - "value": "15" - }, - { - "selected": false, - "text": "30", - "value": "30" - }, - { - "selected": false, - "text": "60", - "value": "60" - }, - { - "selected": false, - "text": "90", - "value": "90" - }, - { - "selected": false, - "text": "180", - "value": "180" - }, - { - "selected": false, - "text": "365", - "value": "365" - }, - { - "selected": false, - "text": "730", - "value": "730" - }, - { - "selected": false, - "text": "1095", - "value": "1095" - }, - { - "selected": false, - "text": "1460", - "value": "1460" - }, - { - "selected": false, - "text": "1825", - "value": "1825" - }, - { - "selected": false, - "text": "3650", - "value": "3650" - }, - { - "selected": true, - "text": "7300", - "value": "7300" - } - ], - "query": "1,7,15,30,60,90,180,365,730,1095,1460,1825,3650,7300", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "now-6h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Certificates Expiration (X509 Certificate Exporter)", - "uid": "lHnsYlPGk", - "version": 2, - "weekStart": "" - } -kind: ConfigMap -metadata: - creationTimestamp: null - name: x509-exporter-dashboard - namespace: prometheus - labels: - grafana_dashboard: "1" -{{- end }} diff --git a/attic/templates/resources/external-clusterrole.yaml b/attic/templates/resources/external-clusterrole.yaml deleted file mode 100644 index 25ec7c68..00000000 --- a/attic/templates/resources/external-clusterrole.yaml +++ /dev/null @@ -1,209 +0,0 @@ -{{- if .Values.cluster_config.external_kubectl_access.enabled }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-access -rules: -- apiGroups: - - "" - resources: - - pods - - serviceaccounts - - namespaces - - events - - persistentvolumeclaims - - persistentvolumes - - bindings - - componentstatuses - - podtemplates - - replicationcontrollers - - resourcequotas - - services - - nodes - - limitranges - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - namespaces - verbs: - - create - - delete -- apiGroups: - - apiregistration.k8s.io - resources: - - apiservices - verbs: - - get - - list - - watch -- apiGroups: - - apps - resources: - - controllerrevisions - - statefulsets - - replicasets - - daemonsets - - deployments - verbs: - - get - - list - - watch -- apiGroups: - - events.k8s.io - resources: - - events - verbs: - - get - - list - - watch -- apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - get - - list - - watch -- apiGroups: - - batch - resources: - - jobs - - cronjobs - verbs: - - get - - list - - watch -- apiGroups: - - certificates.k8s.io - resources: - - certificatesigningrequests - verbs: - - get - - list - - watch -- apiGroups: - - networking.k8s.io - resources: - - ingressclasses - - networkpolicies - - ingresses - verbs: - - get - - list - - watch -- apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - get - - list - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - - roles - - clusterroles - - clusterrolebindings - - rolebindings - verbs: - - get - - list - - watch -- apiGroups: - - storage.k8s.io - resources: - - csinodes - - storageclasses - - csistoragecapacities - - volumeattachments - - csidrivers - verbs: - - get - - list - - watch -- apiGroups: - - admissionregistration.k8s.io - resources: - - mutatingwebhookconfigurations - - validatingwebhookconfigurations - verbs: - - get - - list - - watch -- apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - get - - list - - watch -- apiGroups: - - scheduling.k8s.io - resources: - - priorityclasses - verbs: - - get - - list - - watch -- apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - list - - watch -- apiGroups: - - node.k8s.io - resources: - - runtimeclasses - verbs: - - get - - list - - watch -- apiGroups: - - flowcontrol.apiserver.k8s.io - resources: - - flowschemas - - prioritylevelconfigurations - verbs: - - get - - list - - watch -- apiGroups: - - talos.dev - resources: - - serviceaccounts - verbs: - - get - - list - - watch -- apiGroups: - - cilium.io - resources: - - ciliumexternalworkloads - - ciliumnetworkpolicies - - ciliumidentities - - ciliumnodes - - ciliumendpoints - - ciliumclusterwidenetworkpolicies - verbs: - - get - - list - - watch -- apiGroups: - - metrics.k8s.io - resources: - - pods - - nodes - verbs: - - get - - list - - watch -{{- end }} diff --git a/attic/templates/resources/external-clusterrolebinding.yaml b/attic/templates/resources/external-clusterrolebinding.yaml deleted file mode 100644 index 4965792b..00000000 --- a/attic/templates/resources/external-clusterrolebinding.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if .Values.cluster_config.external_kubectl_access.enabled }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: external-access -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: external-access -subjects: -- apiGroup: rbac.authorization.k8s.io - kind: Group - name: {{ .Values.cluster_config.external_kubectl_access.admin_group }} -{{- end }} diff --git a/attic/templates/resources/kube-flannel-rbac.yaml b/attic/templates/resources/kube-flannel-rbac.yaml deleted file mode 100644 index b14b53a8..00000000 --- a/attic/templates/resources/kube-flannel-rbac.yaml +++ /dev/null @@ -1,42 +0,0 @@ -# Create the clusterrole and clusterrolebinding: -# $ kubectl create -f kube-flannel-rbac.yml -# Create the pod using the same namespace used by the flannel serviceaccount: -# $ kubectl create --namespace kube-system -f kube-flannel-legacy.yml ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: flannel-client -rules: - - apiGroups: - - "" - resources: - - pods - verbs: - - get - - apiGroups: - - "" - resources: - - nodes - verbs: - - list - - watch - - apiGroups: - - "" - resources: - - nodes/status - verbs: - - patch ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: flannel-client -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: flannel-client -subjects: - - kind: User - name: flannel-client - apiGroup: rbac.authorization.k8s.io diff --git a/attic/templates/resources/kube-proxy-rbac.yaml b/attic/templates/resources/kube-proxy-rbac.yaml deleted file mode 100644 index a695d238..00000000 --- a/attic/templates/resources/kube-proxy-rbac.yaml +++ /dev/null @@ -1,51 +0,0 @@ -# This cluster role binding allows anyone in the "manager" group to read secrets in any namespace. -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: kube-proxy -subjects: - - kind: User - name: kube-proxy - apiGroup: rbac.authorization.k8s.io - - kind: ServiceAccount - name: kube-proxy - namespace: kube-system -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: kube-proxy ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: kube-proxy -rules: - - apiGroups: - - "" - resources: - - endpoints - - events - - services - - nodes - verbs: ["get", "watch", "list"] - - nonResourceURLs: ["*"] - verbs: ["get", "watch", "list"] - - - apiGroups: - - "" - - "events.k8s.io" - resources: - - events - verbs: ["*"] - - - nonResourceURLs: ["*"] - verbs: ["*"] - - apiGroups: - - discovery.k8s.io - resources: - - endpointslices - verbs: - - list - - watch - - diff --git a/attic/templates/resources/kyverno-cluster-admin.yaml b/attic/templates/resources/kyverno-cluster-admin.yaml deleted file mode 100644 index 5154ee58..00000000 --- a/attic/templates/resources/kyverno-cluster-admin.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- if .Values.kyverno.enabled }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: kyverno:generate-admin -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: -- kind: ServiceAccount - name: kyverno - namespace: kyverno -- kind: ServiceAccount - name: kyverno-background-controller - namespace: kyverno -{{- end }} diff --git a/attic/templates/resources/kyverno-generate-cilium-network-policies.yaml b/attic/templates/resources/kyverno-generate-cilium-network-policies.yaml deleted file mode 100644 index dc956ce9..00000000 --- a/attic/templates/resources/kyverno-generate-cilium-network-policies.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if and (.Values.kyverno.enabled) (.Values.cilium.enabled) }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: kyverno:generate-cilium-networkpolicies -rules: -- apiGroups: - - cilium.io - resources: - - ciliumnetworkpolicies - verbs: - - "*" ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: kyverno:generate-cilium-network-policies -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: kyverno:generate-cilium-networkpolicies -subjects: -- kind: ServiceAccount - name: kyverno - namespace: kyverno -- kind: ServiceAccount - name: kyverno-background-controller - namespace: kyverno -{{- end }} diff --git a/attic/templates/resources/label-and-taint-nodes.yaml b/attic/templates/resources/label-and-taint-nodes.yaml deleted file mode 100644 index fb707755..00000000 --- a/attic/templates/resources/label-and-taint-nodes.yaml +++ /dev/null @@ -1,96 +0,0 @@ -{{ if .Values.cluster_config.nodes }} - ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: label-and-taint-nodes - namespace: kube-system -spec: - backoffLimit: 1 - template: - metadata: - annotations: - linkerd.io/inject: disable - spec: - restartPolicy: Never - serviceAccountName: label-and-taint-nodes - securityContext: - runAsUser: 12000 - runAsGroup: 13000 - fsGroup: 10000 - affinity: - tolerations: - - key: unschedulable - value: "true" - effect: NoSchedule - containers: - - image: bitnami/kubectl:1.24 - name: kubectl - resources: {} - securityContext: - allowPrivilegeEscalation: false - command: - - "/bin/sh" - - -c - - /tmp/scripts/script.sh - volumeMounts: - - name: scripts - mountPath: /tmp/scripts - volumes: - - name: scripts - configMap: - name: label-and-taint-scripts - defaultMode: 0755 ---- -apiVersion: v1 -data: - script.sh: | - #! /bin/bash -{{- range $node := .Values.cluster_config.nodes }} - {{- range .labels }} - kubectl label nodes --overwrite=true {{ $node.name }} {{ . | quote }} - {{- end }} - {{- range .taints }} - kubectl taint nodes --overwrite=true {{ $node.name }} {{ . | quote }} - {{- end }} -{{- end }} -kind: ConfigMap -metadata: - name: label-and-taint-scripts - namespace: kube-system ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: label-and-taint-nodes - namespace: kube-system ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: label-and-taint-nodes -rules: -- apiGroups: - - "" - resources: - - nodes - verbs: - - get - - list - - update - - patch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: label-and-taint-nodes -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: label-and-taint-nodes -subjects: -- kind: ServiceAccount - name: label-and-taint-nodes - namespace: kube-system -{{ end }} diff --git a/attic/templates/resources/operator-role.yaml b/attic/templates/resources/operator-role.yaml deleted file mode 100644 index 2e630e77..00000000 --- a/attic/templates/resources/operator-role.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: az-kubernetes-operators-cluster-admin -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: cluster-admin -subjects: -- apiGroup: rbac.authorization.k8s.io - kind: Group - name: dd2aa2d6-269d-48fe-90cc-04fd5c08bd29 diff --git a/attic/templates/resources/pre-cert-manager.yaml b/attic/templates/resources/pre-cert-manager.yaml deleted file mode 100644 index e7b7dae8..00000000 --- a/attic/templates/resources/pre-cert-manager.yaml +++ /dev/null @@ -1,225 +0,0 @@ ---- -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - name: letsencrypt-production -spec: - acme: - # The ACME server URL - server: https://acme-v02.api.letsencrypt.org/directory - # Email address used for ACME registration - email: {{ .Values.clusterConfig.acme_email }} - # Name of a secret used to store the ACME account private key - privateKeySecretRef: - name: letsencrypt-production - solvers: - - http01: - ingress: - class: nginx ---- -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - name: letsencrypt-staging -spec: - acme: - # The ACME server URL - server: https://acme-staging-v02.api.letsencrypt.org/directory - # Email address used for ACME registration - email: {{ .Values.clusterConfig.acme_email }} - # Name of a secret used to store the ACME account private key - privateKeySecretRef: - name: letsencrypt-staging - solvers: - - http01: - ingress: - class: nginx ---- -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - name: ca-issuer -spec: - ca: - secretName: cluster-ca ---- -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - name: selfsigning-issuer -spec: - selfSigned: {} ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: front-proxy-client -subjects: - - kind: User - name: front-proxy-client - apiGroup: rbac.authorization.k8s.io -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: front-proxy-client ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: front-proxy-client -rules: -- apiGroups: - - "webhook.cert-manager.io" - resources: - - mutations - - validations - verbs: [ "*" ] -- apiGroups: - - metrics.k8s.io - resources: - - pods - - nodes - verbs: - - get - - list - - watch ---- - -{{ if .Values.clusterConfig.initca }} - -# Pod to update certificates from master nodes -# only runs on control plane nodes (etcd) -# Mounts cert files rotatet by nixos service.mgr and uses it to update cert-manager secret -# Always create certs on initial creation, -# Otherwise, cert creation would not happen until cronJob runs -apiVersion: batch/v1 -kind: Job -metadata: - name: cert-create - namespace: cert-manager -spec: - backoffLimit: 1 - template: - metadata: - labels: - block-egress: "true" - annotations: - linkerd.io/inject: disabled - spec: - restartPolicy: Never - serviceAccountName: cert-secret-updater - securityContext: - runAsUser: 12000 - runAsGroup: 13000 - fsGroup: 10000 - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: node-role.kubernetes.io - operator: In - values: - - control-plane - tolerations: - - key: unschedulable - value: "true" - effect: NoSchedule - containers: - - image: bitnami/kubectl:1.24 - name: kubectl - resources: {} - securityContext: - allowPrivilegeEscalation: false - command: - - "/bin/sh" - - -c - - /tmp/renew-certs/renew-certs.sh - volumeMounts: - - name: ca-pem - mountPath: /tmp/ca.pem - - name: ca-key-pem - mountPath: /tmp/ca-key.pem - - name: certs-script - mountPath: /tmp/renew-certs - volumes: - - name: ca-pem - hostPath: - path: {{.Values.clusterConfig.initca}}/ca.pem - type: File - - name: ca-key-pem - hostPath: - path: {{.Values.clusterConfig.initca}}/ca-key.pem - type: File - - name: certs-script - configMap: - name: renew-certs-script - defaultMode: 0755 ---- -apiVersion: v1 -data: - renew-certs.sh: | - #! /bin/bash - kubectl create secret tls -n cert-manager cluster-ca --cert=/tmp/ca.pem --key=/tmp/ca-key.pem --dry-run=client -o yaml > /tmp/new-secret.yaml - kubectl apply -f /tmp/new-secret.yaml -kind: ConfigMap -metadata: - name: renew-certs-script - namespace: cert-manager ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cert-secret-updater - namespace: cert-manager ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: cert-secret-updater-role - namespace: cert-manager -rules: -- apiGroups: - - "" - resourceNames: - - cluster-ca - resources: - - secrets - verbs: - - '*' ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cert-secret-updater-rbinding - namespace: cert-manager -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: cert-secret-updater-role -subjects: -- kind: ServiceAccount - name: cert-secret-updater - namespace: cert-manager ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: default-deny-egress - namespace: cert-manager -spec: - podSelector: - matchLabels: - block-egress: "true" - policyTypes: - - Egress ---- -{{ end }} diff --git a/attic/templates/resources/pre-gitlab-runner.yaml b/attic/templates/resources/pre-gitlab-runner.yaml deleted file mode 100644 index 75899d35..00000000 --- a/attic/templates/resources/pre-gitlab-runner.yaml +++ /dev/null @@ -1,128 +0,0 @@ -{{- if and (.Values.gitlab_runner.enabled) (.Values.gitlab_runner.createCertSecret) }} -# Pod to update certificates from master nodes -# only runs on control plane nodes (etcd) -# Mounts cert files rotatet by nixos service.mgr and uses it to update gitlab secret -# Always create certs on initial creation, -# Otherwise, cert creation would not happen until cronJob runs -apiVersion: batch/v1 -kind: Job -metadata: - name: cert-create - namespace: gitlab -spec: - template: - metadata: - labels: - block-egress: "true" - annotations: - linkerd.io/inject: disabled - spec: - restartPolicy: Never - serviceAccountName: cert-secret-updater - securityContext: - runAsUser: 12000 - runAsGroup: 13000 - fsGroup: 10000 - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: node-role.kubernetes.io - operator: In - values: - - control-plane - tolerations: - - key: unschedulable - value: "true" - effect: NoSchedule - containers: - - image: bitnami/kubectl:1.24 - name: kubectl - resources: {} - securityContext: - allowPrivilegeEscalation: false - command: - - "/bin/sh" - - -c - - /tmp/renew-certs/renew-certs.sh - volumeMounts: - - name: ca-pem - mountPath: /tmp/ca.pem - - name: ca-key-pem - mountPath: /tmp/ca-key.pem - - name: certs-script - mountPath: /tmp/renew-certs - volumes: - - name: ca-pem - hostPath: - path: {{.Values.cluster_config.initca}}/ca.pem - type: File - - name: ca-key-pem - hostPath: - path: {{.Values.cluster_config.initca}}/ca-key.pem - type: File - - name: certs-script - configMap: - name: renew-certs-script - defaultMode: 0755 ---- -apiVersion: v1 -data: - renew-certs.sh: | - #! /bin/bash - kubectl create secret tls -n gitlab itp-cluster-ca --cert=/tmp/ca.pem --key=/tmp/ca-key.pem --dry-run=client -o yaml > /tmp/new-secret.yaml - kubectl apply -f /tmp/new-secret.yaml -kind: ConfigMap -metadata: - name: renew-certs-script - namespace: gitlab ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cert-secret-updater - namespace: gitlab ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: cert-secret-updater-role - namespace: gitlab -rules: -- apiGroups: - - "" - resourceNames: - - itp-cluster-ca - resources: - - secrets - verbs: - - '*' ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cert-secret-updater-rbinding - namespace: gitlab -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: cert-secret-updater-role -subjects: -- kind: ServiceAccount - name: cert-secret-updater - namespace: gitlab ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: default-deny-egress - namespace: gitlab -spec: - podSelector: - matchLabels: - block-egress: "true" - policyTypes: - - Egress ---- -{{- end }} diff --git a/attic/templates/resources/pre-linkerd.yaml b/attic/templates/resources/pre-linkerd.yaml deleted file mode 100644 index d59ad3da..00000000 --- a/attic/templates/resources/pre-linkerd.yaml +++ /dev/null @@ -1,206 +0,0 @@ -{{ if .Values.linkerd.enabled }} ---- -apiVersion: v1 -kind: Namespace -metadata: - labels: - linkerd.io/control-plane-ns: linkerd - linkerd.io/is-control-plane: 'true' - config.linkerd.io/admission-webhooks: disabled - annotations: - linkerd.io/inject: disabled - argocd.argoproj.io/sync-wave: "-1" - name: linkerd ---- -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - name: linkerd-trust-anchor - namespace: linkerd -spec: - ca: - secretName: linkerd-trust-anchor ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: linkerd-identity-issuer - namespace: linkerd -spec: - revisionHistoryLimit: 5 - secretName: linkerd-identity-issuer - duration: 48h0m0s - renewBefore: 25h0m0s - issuerRef: - name: linkerd-trust-anchor - kind: Issuer - dnsNames: - - identity.linkerd.cluster.local - isCA: true - privateKey: - algorithm: ECDSA - usages: - - cert sign - - crl sign - - server auth - - client auth ---- -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - name: webhook-issuer - namespace: linkerd -spec: - ca: - secretName: webhook-issuer-tls ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: linkerd-policy-validator - namespace: linkerd -spec: - revisionHistoryLimit: 5 - secretName: linkerd-policy-validator-k8s-tls - duration: 24h0m0s - renewBefore: 1h0m0s - issuerRef: - name: webhook-issuer - kind: Issuer - commonName: linkerd-policy-validator.linkerd.svc - dnsNames: - - linkerd-policy-validator.linkerd.svc - privateKey: - algorithm: ECDSA - encoding: PKCS8 - usages: - - server auth ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: linkerd-proxy-injector - namespace: linkerd -spec: - revisionHistoryLimit: 5 - secretName: linkerd-proxy-injector-k8s-tls - duration: 24h0m0s - renewBefore: 1h0m0s - issuerRef: - name: webhook-issuer - kind: Issuer - commonName: linkerd-proxy-injector.linkerd.svc - dnsNames: - - linkerd-proxy-injector.linkerd.svc - privateKey: - algorithm: ECDSA - usages: - - server auth ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: linkerd-sp-validator - namespace: linkerd -spec: - revisionHistoryLimit: 5 - secretName: linkerd-sp-validator-k8s-tls - duration: 24h0m0s - renewBefore: 1h0m0s - issuerRef: - name: webhook-issuer - kind: Issuer - commonName: linkerd-sp-validator.linkerd.svc - dnsNames: - - linkerd-sp-validator.linkerd.svc - privateKey: - algorithm: ECDSA - usages: - - server auth ---- -{{ if .Values.linkerd.viz.enabled }} -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - name: webhook-issuer - namespace: linkerd-viz -spec: - ca: - secretName: webhook-issuer-tls -# ignore if not using the viz extension -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: tap - namespace: linkerd-viz -spec: - revisionHistoryLimit: 5 - secretName: tap-k8s-tls - duration: 24h0m0s - renewBefore: 1h0m0s - issuerRef: - name: webhook-issuer - kind: Issuer - commonName: tap.linkerd-viz.svc - dnsNames: - - tap.linkerd-viz.svc - isCA: false - privateKey: - algorithm: ECDSA - usages: - - server auth ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: linkerd-tap-injector - namespace: linkerd-viz -spec: - revisionHistoryLimit: 5 - secretName: tap-injector-k8s-tls - duration: 24h0m0s - renewBefore: 1h0m0s - issuerRef: - name: webhook-issuer - kind: Issuer - commonName: tap-injector.linkerd-viz.svc - dnsNames: - - tap-injector.linkerd-viz.svc - privateKey: - algorithm: ECDSA - usages: - - server auth ---- -{{ end }} -{{ if .Values.linkerd.jaeger.enabled }} -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - name: webhook-issuer - namespace: linkerd-jaeger -spec: - ca: - secretName: webhook-issuer-tls ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: jaeger-injector - namespace: linkerd-jaeger -spec: - revisionHistoryLimit: 5 - secretName: jaeger-injector-k8s-tls - duration: 24h0m0s - renewBefore: 1h0m0s - issuerRef: - name: webhook-issuer - kind: Issuer - commonName: jaeger-injector.linkerd-jaeger.svc - dnsNames: - - jaeger-injector.linkerd-jaeger.svc - privateKey: - algorithm: ECDSA - usages: - - server auth -{{ end }} -{{ end }} diff --git a/attic/templates/resources/x509-certificates.yaml b/attic/templates/resources/x509-certificates.yaml deleted file mode 100644 index a488fd04..00000000 --- a/attic/templates/resources/x509-certificates.yaml +++ /dev/null @@ -1,48 +0,0 @@ -{{- if .Values.x509_exporter.alerts }} -apiVersion: monitoring.coreos.com/v1 -kind: PrometheusRule -metadata: - labels: - # Some labels for various prometheus matching - k8s-app: x509-exporter - prometheus: k8s - role: alert-rules - name: x509-exporter-x509-certificate-exporter - namespace: x509-exporter -spec: - groups: - - name: x509-certificate-exporter.rules - rules: - - alert: X509ExporterReadErrors - annotations: - description: Over the last 15 minutes, this x509-certificate-exporter instance has experienced errors reading certificate files or querying the Kubernetes API. This could be caused by a misconfiguration if triggered when the exporter starts. - summary: Increasing read errors for x509-certificate-exporter - expr: delta(x509_read_errors[15m]) > 0 - for: 5m - labels: - severity: warning - - alert: CertificateError - annotations: - description: Certificate could not be decoded {{`{{`}}if $labels.secret_name {{`}}`}} in Kubernetes secret "{{`{{`}} $labels.secret_namespace {{`}}`}}/{{`{{`}} $labels.secret_name {{`}}`}}"{{`{{`}}else{{`}}`}}at location "{{`{{`}} $labels.filepath {{`}}`}}"{{`{{`}}end{{`}}`}} - summary: Certificate cannot be decoded - expr: x509_cert_error > 0 - for: 15m - labels: - severity: warning - - alert: CertificateRenewal - annotations: - description: Certificate for "{{`{{`}} $labels.subject_CN {{`}}`}}" should be renewed {{`{{`}}if $labels.secret_name {{`}}`}}in Kubernetes secret "{{`{{`}} $labels.secret_namespace {{`}}`}}/{{`{{`}} $labels.secret_name {{`}}`}}"{{`{{`}}else{{`}}`}}at location "{{`{{`}} $labels.filepath {{`}}`}}"{{`{{`}}end{{`}}`}} - summary: Certificate should be renewed - expr: ((x509_cert_not_after{secret_name!="linkerd-identity-issuer", issuer_O="", issuer_CN!="webhook.linkerd.cluster.local"} - time()) / 86400) < 28 - for: 15m - labels: - severity: warning - - alert: CertificateExpiration - annotations: - description: Certificate for "{{`{{`}} $labels.subject_CN {{`}}`}}" is about to expire {{`{{`}}if $labels.secret_name {{`}}`}}in Kubernetes secret "{{`{{`}} $labels.secret_namespace {{`}}`}}/{{`{{`}} $labels.secret_name {{`}}`}}"{{`{{`}}else{{`}}`}}at location "{{`{{`}} $labels.filepath {{`}}`}}"{{`{{`}}end{{`}}`}} - summary: Certificate is about to expire - expr: ((x509_cert_not_after{secret_name!="linkerd-identity-issuer", issuer_O="", issuer_CN!="webhook.linkerd.cluster.local"} - time()) / 86400) < 14 - for: 15m - labels: - severity: critical -{{- end }} diff --git a/attic/templates/seq.yaml b/attic/templates/seq.yaml deleted file mode 100644 index bcb8f87a..00000000 --- a/attic/templates/seq.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if .Values.seq.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: seq - namespace: argocd -spec: - project: aux - destination: - server: https://kubernetes.default.svc - namespace: seq - sources: - - repoURL: https://helm.datalust.co - targetRevision: 2024.1.0 - chart: seq - helm: - valueFiles: - - $values/values/seq/values.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - ref: values -{{- end }} diff --git a/attic/templates/sorcerer.yaml b/attic/templates/sorcerer.yaml deleted file mode 100644 index f348fc80..00000000 --- a/attic/templates/sorcerer.yaml +++ /dev/null @@ -1,58 +0,0 @@ -{{ if .Values.sorcerer.enabled }} -{{- range .Values.atlantis.envs }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: prod-sorcerer - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: prod-sorcerer - server: https://10.255.241.99:4443 - project: atlantis - sources: - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - ref: values - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: values/sorcerer - plugin: - name: kustomize-helm-with-rewrite - parameters: - - name: env - string: prod - - name: hostname - string: sorcerer.data.oceanbox.io - - repoURL: https://charts.bitnami.com/bitnami - targetRevision: 20.1.7 - chart: redis - helm: - valueFiles: - - $values/values/sorcerer/prod/redis.yaml - ignoreDifferences: - - kind: Secret - name: azure-keyvault - jqPathExpressions: - - '.data' - - '.metadata.labels' - - '.metadata.annotations' - - kind: Secret - name: prod-atlantis-rabbitmq - jqPathExpressions: - - '.data' - - '.metadata.labels' - - '.metadata.annotations' - syncPolicy: - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - # automated: - # prune: true - # selfHeal: false -{{- end }} -{{- end }} diff --git a/attic/templates/tempo.yaml b/attic/templates/tempo.yaml deleted file mode 100644 index 6b1ee048..00000000 --- a/attic/templates/tempo.yaml +++ /dev/null @@ -1,90 +0,0 @@ -{{ if .Values.tempo.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: tempo - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: tempo - server: 'https://kubernetes.default.svc' - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{ if .Values.tempo.autosync }} - automated: - prune: true - # selfHeal: false - {{ end }} - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/tempo - targetRevision: HEAD - - repoURL: 'https://grafana.github.io/helm-charts' - targetRevision: {{ .Values.tempo.version }} - chart: tempo - helm: - values: | - tempo: - reportingEnabled: false - storage: - trace: - backend: s3 - s3: - bucket: {{ .Values.tempo.bucketName | default "tempo-traces" }} - endpoint: {{ .Values.tempo.s3.endpoint | default "https://s3.production.itpartner.no" }} - prefix: traces - access_key: ${S3KEY} - secret_key: ${S3SECRET} - forcepathstyle: true - region: us-east-1 - {{- if .Values.tempo.s3.insecure_skip_verify }} - tls_insecure_skip_verify: true - {{- end }} - local: - path: /var/tempo/traces - wal: - path: /var/tempo/wal - metricsGenerator: - enabled: true - remoteWriteUrl: "http://prom-prometheus.prometheus:9090/api/v1/write" - extraArgs: { config.expand-env=true } - extraEnv: - - name: S3KEY - valueFrom: - secretKeyRef: - name: {{ .Values.tempo.secret.name | default "s3-credentials"}} - key: {{ .Values.tempo.secret.access_key | default "access_key" }} - - name: S3SECRET - valueFrom: - secretKeyRef: - name: {{ .Values.tempo.secret.name | default "s3-credentials"}} - key: {{ .Values.tempo.secret.access_key | default "access_secret" }} - tempoQuery: - ingress: - enabled: true - ingressClassName: nginx - annotations: - cert-manager.io/cluster-issuer: {{ .Values.cluster_config.ingress_clusterissuer }} - nginx.ingress.kubernetes.io/ssl-redirect: "true" - {{- with .Values.cluster_config.ingress_whitelist_ips }} - nginx.ingress.kubernetes.io/whitelist-source-range: {{ join "," . }} - {{- end }} - path: / - pathType: Prefix - hosts: - - query.tempo.{{ .Values.cluster_config.domain }} - tls: - - secretName: tempo-query-tls - hosts: - - query.tempo.{{ .Values.cluster_config.domain }} -{{ end }} diff --git a/attic/templates/velero.yaml b/attic/templates/velero.yaml deleted file mode 100644 index 1b6142ab..00000000 --- a/attic/templates/velero.yaml +++ /dev/null @@ -1,109 +0,0 @@ -{{ if .Values.velero.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: velero - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true -spec: - destination: - namespace: velero - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/velero - targetRevision: HEAD - - repoURL: 'https://vmware-tanzu.github.io/helm-charts' - targetRevision: {{ .Values.velero.version }} - chart: velero - helm: - values: | - initContainers: - - name: velero-plugin-for-aws - image: velero/velero-plugin-for-aws:v1.9.0 - imagePullPolicy: IfNotPresent - volumeMounts: - - mountPath: /target - name: plugins - credentials: - useSecret: true - existingSecret: {{ .Values.velero.credentials.secretName }} - deployNodeAgent: true - nodeAgent: - podVolumePath: {{ .Values.velero.kubeletRootDir }} - resources: - requests: - cpu: {{ .Values.velero.resources.nodeAgent.request.cpu | default "500m" }} - memory: {{ .Values.velero.resources.nodeAgent.request.memory | default "1Gi" }} - limits: - memory: {{ .Values.velero.resources.nodeAgent.limit.memory | default "2Gi" }} - snapshotsEnabled: false - resources: - requests: - cpu: {{ .Values.velero.resources.velero.request.cpu | default "500m" }} - memory: {{ .Values.velero.resources.velero.request.memory | default "1Gi" }} - limits: - memory: {{ .Values.velero.resources.velero.limit.memory | default "1Gi" }} - configuration: - uploaderType: kopia - # Backup all volumes by default - defaultVolumesToFsBackup: {{ .Values.velero.backupAllVolumes }} - ## https://velero.io/docs/v1.6/api-types/backupstoragelocation/ - backupStorageLocation: - - name: {{ .Values.velero.bsl }} - bucket: {{ .Values.velero.bucket }} - provider: aws - default: true - ## prefix is the directory under which all Velero data should be stored within the bucket. Optional. - prefix: {{ .Values.cluster_config.cluster }}/velero - accessMode: ReadWrite - config: - ## ONLY us-east-1 region is supported by nutanix - region: {{ .Values.velero.s3.region }} - s3ForcePathStyle: "true" - s3Url: {{ .Values.velero.s3.url }} - {{- if .Values.velero.s3.insecureSkipTLSVerify }} - insecureSkipTLSVerify: true - {{- end }} - metrics: - serviceMonitor: - enabled: true - additionalLabels: - k8s-app: "velero" - release: "prometheus" - prometheusRule: - enabled: true - # namespace: "" - # Rules to be deployed - spec: - - alert: VeleroBackupPartialFailures - annotations: - message: Velero backup {{` {{ $labels.schedule }} `}} has {{` {{$value | humanizePercentage}} `}} partialy failed backups. - expr: |- - velero_backup_partial_failure_total{schedule!=""} / velero_backup_attempt_total{schedule!=""} > 0.25 - for: 15m - labels: - severity: critical - - alert: VeleroBackupFailures - annotations: - message: Velero backup {{` {{$labels.schedule}} `}} has {{` {{$value | humanizePercentage}} `}} failed backups. - expr: |- - velero_backup_failure_total{schedule!=""} / velero_backup_attempt_total{schedule!=""} > 0.25 - for: 15m - labels: - severity: critical - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.velero.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{- end }} diff --git a/attic/templates/wordpress.yaml b/attic/templates/wordpress.yaml deleted file mode 100644 index 8529f258..00000000 --- a/attic/templates/wordpress.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if .Values.wordpress.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: www-oceanbox - namespace: argocd -spec: - project: default - destination: - server: https://kubernetes.default.svc - namespace: www-oceanbox - sources: - - repoURL: https://charts.bitnami.com/bitnami - targetRevision: 19.2.2 - chart: wordpress - helm: - valueFiles: - - $values/values/wordpress/values.yaml - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: HEAD - ref: values -{{- end }} diff --git a/attic/templates/x509-exporter.yaml b/attic/templates/x509-exporter.yaml deleted file mode 100644 index 659acc2b..00000000 --- a/attic/templates/x509-exporter.yaml +++ /dev/null @@ -1,53 +0,0 @@ -{{ if .Values.x509_exporter.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: x509-exporter - namespace: argocd - annotations: - argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: x509-exporter - server: 'https://kubernetes.default.svc' - sources: - - repoURL: {{ .Values.cluster_config.manifests }} - path: {{ .Values.cluster_config.policies }}/x509-exporter - targetRevision: HEAD - - repoURL: 'https://charts.enix.io' - targetRevision: {{ .Values.x509_exporter.version }} - chart: x509-certificate-exporter - helm: - values: | - secretsExporter: - excludeNamespaces: - - sealed-secrets - excludeLabels: - - cert-manager.io/* - resources: - limits: - memory: 100Mi - requests: - cpu: 20m - memory: 100Mi - prometheusServiceMonitor: - extraLabels: - k8s-app: x509-exporter - prometheusRules: - create: false - project: sys - syncPolicy: - managedNamespaceMetadata: - labels: - component: sys - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - {{- if .Values.x509_exporter.autosync }} - automated: - prune: true - # selfHeal: false - {{- end }} -{{ end }} diff --git a/attic/templates/yolo-dl.yaml b/attic/templates/yolo-dl.yaml deleted file mode 100644 index 4184573a..00000000 --- a/attic/templates/yolo-dl.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if .Values.yolo-dl.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: yolo-dl - namespace: argocd -spec: - project: aux - destination: - server: https://10.255.241.99:4443 - namespace: oceanbox - sources: - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: charts/yolo-dl -{{- end }} diff --git a/attic/templates/yolo-registry.yaml b/attic/templates/yolo-registry.yaml deleted file mode 100644 index 19985466..00000000 --- a/attic/templates/yolo-registry.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{- if .Values.yolo-registry.enabled }} -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: yolo-registry - namespace: argocd -spec: - project: aux - destination: - server: https://kubernetes.default.svc - namespace: yolo - sources: - - repoURL: https://gitlab.com/oceanbox/manifests.git - targetRevision: main - path: charts/yolo-registry -{{- end }} diff --git a/attic/values.yaml b/attic/values.yaml deleted file mode 100644 index f2b7ffa2..00000000 --- a/attic/values.yaml +++ /dev/null @@ -1,404 +0,0 @@ -cluster_config: - manifests: https://gitlab.com/oceanbox/manifests.git - policies: policies/sys - resources: resources/sys - distro: "" #[nixos, talos] - env: "" #[dev, test, staging, prod] - initca: "" - domain: "itpartner.no" - apiserver: "" - apiserverip: "" - etcd_nodes: [] - k8s_nodes: [] - cluster: "" - ingress_nodes: [] - ingress_replica_count: 3 - fileserver: "" - acme_email: "" - nodenames: [] - nodes: [] - ingress_clusterissuer: "letsencrypt-production" - ingress_whitelist_ips: - - 10.0.0.0/8 - - 172.16.0.0/12 - - 192.168.0.0/16 - - 172.19.255.0/24 - external_kubectl_access: - enabled: false - admin_group: "" - external_access: - enabled: false - admin_group: "" - groups: [] - #- group_id: - # - "" - # name: - # namespaces: - # - - oidc: [] - #- name: azure-oidc - # provider: azuread - # tenant: "https://login.microsoftonline.com//oauth2/v2.0" - # secret_ref: - # name: azure-oidc - # group_id: "" - #- name: github-oidc - # provider: github - # secret_ref: - # name: github-oidc - # allowed_organizations: - # allowed_teams: - - -argocd: - autosync: true - version: 7.5.2 - ingress: - enabled: true - adminLogin: false - anyNamespaces: - enabled: false - kustomizeHelmSupport: false - applicationset_webhook: - enabled: false - additional_rbac_settings: [] - resources: - controller: - memory: "" - repoServer: - cmp: - enabled: false - name: "" - image: "" - imagePullSecret: [] - helmTokenSecret: "" -argocd_apps: - enable: true - autosync: true - version: 0.0.1 -argo_workflows: - enabled: false - autosync: true - version: 0.45.0 - metrics: - enabled: false - allowed_namespaces: [] -argo_rollouts: - enabled: false - autosync: true - version: 2.35.2 - metrics: - enabled: false - dashboard_enabled: false - -cilium: - enabled: false - autosync: true - version: 1.16.2 - spire: - enabled: false - policyAuditMode: false - encryption: - enabled: true - type: ipsec - endpointStatus: - enabled: true - kubeProxyReplacement: false - k8sServiceHost: localhost - k8sServicePort: 7445 - nodePort: - enabled: false - # NOTE: requires that ingressconroller is also enabled (bug) - gatewayAPI: - enabled: false - ingressController: - enabled: false - defaultClass: false - loadbalancerMode: shared - l2announcement: - enabled: false - k8sClientRateLimit: - qps: 10 - burst: 3 - loadbalancerPool: - enabled: false - cidr: [] - envoy: - enabled: false - hubble: - ui: true - upgradeCompatability: "" -linkerd: - enabled: true - autosync: true - version: 1.9.3 - trustAnchorPEM: | - -----BEGIN CERTIFICATE----- - -----END CERTIFICATE----- - webhookPEM: | - -----BEGIN CERTIFICATE----- - -----END CERTIFICATE----- - identyIssuerPEM: "" - secretScheme: kubernetes.io/tls - crds: - version: 1.4.0 - multicluster: - version: 30.2.0 - enabled: false - viz: - enabled: false - jaeger: - enabled: false -thanos: - enabled: false - autosync: true - version: 8.3.0 - pagerdutyRoutingKey: "" -prometheus: - enabled: true - autosync: true - version: 62.7.0 - # Helm chart version, and app version is different. CRD version MUST be equals to chart's APP version - crd_version: 14.0.0 - certRenewCronEnabled: true - snitchUrl: "" - oncallUrl: "" - pagerdutyRoutingKey: "" - fullname: "" - # https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml#L47 - defaultRules: {} - additionalScrapeConfigs: [] - additionalDataSources: [] - enableFeatures: [] - storage: - size: 50Gi - grafana: - defaultDashboardsEnabled: true - persistence: false - disable_login_form: true - plugins: [] - coredns: - targetPort: "" - etcd: - targetPort: "" - scheduler: - targetPort: "" - kubelet: - enabled: false - https: false - thanos: - enabled: false - datasource: - enabled: false -nfs_provisioner: - enabled: true - autosync: true - version: 4.0.13 - archiveOnDelete: true - defaultClass: true - extraMountOpts: [] -cert_manager: - autosync: true - version: 1.12.13 -kubernetes_dashboard: - enabled: false - autosync: true - version: v2.3.1 -metrics_server: - autosync: true - version: 3.8.2 - ignoreTLS: false -nginx: - enabled: true - autosync: true - version: 4.8.3 - pdb: - minAvailable: 1 - resources: - controller: - cpu: "100m" - memory: "100Mi" -kyverno: - enabled: false - autosync: true - metrics: false - version: 3.2.5 - resources: - cleanupController: - memory: "64Mi" - reportsController: - memory: "64Mi" - backgroundController: - memory: "64Mi" -velero: - enabled: true - autosync: true - version: 6.0.0 - kubeletRootDir: "/var/lib/kubernetes/pods" - bucket: velero-backup - bsl: default - # Opt-in or opt-out pvc backup - # https://velero.io/docs/main/file-system-backup/#to-back-up - backupAllVolumes: true - credentials: - secretName: "s3-credentials" - s3: - region: us-east-1 - url: "https://nutanix-obj-s3.kube-system" - insecureSkipTLSVerify: true - resources: - velero: - request: - cpu: 500m - memory: 1Gi - limit: - memory: 2Gi - nodeAgent: - request: - cpu: 500m - memory: 1Gi - limit: - memory: 2Gi -x509_exporter: - enabled: true - autosync: true - alerts: true - version: 3.6.0 -downscaler: - enabled: false - autosync: true - version: 0.2.12 - extraConfig: | - DEFAULT_UPTIME: "Mon-Fri 07:00-20:00 Europe/Berlin" - excludedNamespaces: - - py-kube-downscaler - - kube-downscaler - - kube-system - -actions_runner_controller: - enabled: false - autosync: true - version: 0.23.7 -gitlab_runner: - enabled: true - autosync: true - version: 0.39.0 - createCertSecret: true - tag: "obx" - s3: - server: "" - access_key: "" - secret_key: "" -postgres_operator: - enabled: true - autosync: true - version: 0.18.2 -rabbitmq_operator: - enabled: false - autosync: true - version: 4.3.27 -jaeger_operator: - enabled: false - autosync: true - version: 1.38.0 -loki: - enabled: false - autosync: true - version: 6.12.0 - compactor: false - s3: - endpoint: "" - region: "" - insecure_skip_verify: false - secret: - name: "" - access_key: "" - access_secret: "" - buckets: - chunks: "" - ruler: "" - admin: "" -tempo: - enabled: false - autosync: true - version: 1.14.0 - s3: - endpoint: "" - region: "" - insecure_skip_verify: false - secret: - name: "" - access_key: "" - access_secret: "" - bucketName: "" -otel: - enabled: false - autosync: true - version: 0.107.0 -promtail: - enabled: false - autosync: true - version: 6.6.1 -mariadb_operator: - enabled: false - autosync: true - version: 0.30.0 -chartmuseum: - enabled: false - autosync: true - version: 3.10.2 - storage: - size: 8Gi - ingress: - enabled: true -clickhouse_operator: - enabled: false - autosync: true - version: 0.24.4 -oncall: - enabled: false - externalGrafana: - url: "" -dapr: - enable: true - -busynix.enable: false -headscale.enable: false -plausible.enable: false -dex.enable: false -keycloak.enable: false -rabbitmq.enable: false -redis.enable: false -wordpress.enable: false -yolo-dl.enable: false -yolo-registry.enable: false -osm-tile-server.enable: false -geoserver.enable: false - -install: - argo: - autosync: true - argocd: - enabled: true - apps: - enabled: true - rollouts: - enabled: false - workflows: - enabled: false - atlantis: - enabled: false - envs: - - prod - - staging - sorcerer: - enabled: false - envs: - - prod - - staging - openfga: - enabled: false - envs: - - prod - - staging - diff --git a/attic/values/archmeister/base/deployment_patch.yaml b/attic/values/archmeister/base/deployment_patch.yaml deleted file mode 100644 index c8368399..00000000 --- a/attic/values/archmeister/base/deployment_patch.yaml +++ /dev/null @@ -1,9 +0,0 @@ -- op: replace - path: /spec/template/spec/containers/0/livenessProbe/httpGet/path - value: /healthz -- op: replace - path: /spec/template/spec/containers/0/readinessProbe/httpGet/path - value: /healthz -- op: add - path: /spec/template/spec/containers/0/envFrom - value: [] diff --git a/attic/values/archmeister/base/kustomization.yaml b/attic/values/archmeister/base/kustomization.yaml deleted file mode 100644 index b0ce8979..00000000 --- a/attic/values/archmeister/base/kustomization.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -patches: -- path: deployment_patch.yaml - target: - group: apps - kind: Deployment - version: v1 -resources: -- _manifest.yaml diff --git a/attic/values/archmeister/chart b/attic/values/archmeister/chart deleted file mode 100644 index e898131e..00000000 --- a/attic/values/archmeister/chart +++ /dev/null @@ -1 +0,0 @@ -oceanbox/archmeister diff --git a/attic/values/archmeister/prod/appsettings.json b/attic/values/archmeister/prod/appsettings.json deleted file mode 100644 index ff4fb40c..00000000 --- a/attic/values/archmeister/prod/appsettings.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "connString": "Username=app;Password=secret;Host=prod-archmeister-rw;Port=5432;Database=app;Pooling=true;", - "oidc": { - "issuer": "https://idp.oceanbox.io/dex", - "authorization_endpoint": "https://idp.oceanbox.io/dex/auth", - "token_endpoint": "https://idp.oceanbox.io/dex/token", - "jwks_uri": "https://idp.oceanbox.io/dex/keys", - "userinfo_endpoint": "https://idp.oceanbox.io/dex/userinfo", - "device_authorization_endpoint": "https://idp.oceanbox.io/dex/device/code", - "clientId": "archmeister", - "clientSecret": "", - "scopes": [ - "openid", - "email", - "offline_access", - "profile" - ] - }, - "sso": { - "cookieDomain": ".oceanbox.io", - "signedOutRedirectUri": "https://idp.oceanbox.io/dex/static/logout.html", - "redis": "prod-redis-master.redis.svc,user=default,password=secret", - "appDomain": "atlantis", - "dataProtectionKeys": "DataProtection-Keys" - }, - "allowedOrigins": [ - "https://maps.oceanbox.io", - "https://atlantis.srv.oceanbox.io", - "https://maps.relic.oceanbox.io", - "https://sorcerer.data.oceanbox.io", - "https://sorcerer.ekman.oceanbox.io", - "https://sorcerer.jonas.ekman.oceanbox.io", - "https://sorcerer.simkir.ekman.oceanbox.io", - "https://sorcerer.stig.ekman.oceanbox.io", - "https://atlantis.beta.oceanbox.io", - "https://atlantis.jonas.dev.oceanbox.io", - "https://atlantis.stig.dev.oceanbox.io", - "https://atlantis.simkir.dev.oceanbox.io", - "https://atlantis.local.oceanbox.io:8080" - ], - "logService" : "https://seq.adm.oceanbox.io", - "logApiKey": "", - "cliUsers": [ - "admin:en-to-tre-fire" - ], - "cerbosUrl": "http://prod-cerbos.idp.svc:3593", - "deployEnv": "prod" -} diff --git a/attic/values/archmeister/prod/default.env b/attic/values/archmeister/prod/default.env deleted file mode 100644 index 5aa261a6..00000000 --- a/attic/values/archmeister/prod/default.env +++ /dev/null @@ -1,2 +0,0 @@ -OIDC_CLIENT_SECRET=ieK3yak9zoh3yeewee8quahY6seiv7Ro -SEQ_APIKEY=mxv08mP4RDQE7vgUkbfC diff --git a/attic/values/archmeister/prod/deployment_patch.yaml b/attic/values/archmeister/prod/deployment_patch.yaml deleted file mode 100644 index 1e899e2d..00000000 --- a/attic/values/archmeister/prod/deployment_patch.yaml +++ /dev/null @@ -1,44 +0,0 @@ -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: prod-archmeister-app - key: password -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: DB_USERNAME - valueFrom: - secretKeyRef: - name: prod-archmeister-app - key: username -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: DB_HOST - value: prod-archmeister-rw -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_USER - value: default -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: prod-redis - key: redis-password -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: RABBITMQ_USER - value: user -- op: add - path: /spec/template/spec/containers/0/envFrom/- - value: - secretRef: - name: prod-archmeister-env diff --git a/attic/values/archmeister/prod/ingress_patch.yaml b/attic/values/archmeister/prod/ingress_patch.yaml deleted file mode 100644 index 50004710..00000000 --- a/attic/values/archmeister/prod/ingress_patch.yaml +++ /dev/null @@ -1,3 +0,0 @@ -- op: replace - path: /spec/rules/0/http/paths/0/path - value: /internal \ No newline at end of file diff --git a/attic/values/archmeister/prod/kustomization.yaml b/attic/values/archmeister/prod/kustomization.yaml deleted file mode 100644 index 1af54e43..00000000 --- a/attic/values/archmeister/prod/kustomization.yaml +++ /dev/null @@ -1,25 +0,0 @@ -generatorOptions: - disableNameSuffixHash: true -configMapGenerator: -- name: prod-archmeister-appsettings - files: - - appsettings.json -secretGenerator: -- name: prod-archmeister-env - envs: - - default.env -patches: -- path: deployment_patch.yaml - target: - version: v1 - group: apps - kind: Deployment -- path: ingress_patch.yaml - target: - group: networking.k8s.io - kind: Ingress - name: prod-archmeister-internal - annotationSelector: oceanbox.io/expose=internal - version: v1 -resources: -- ../base diff --git a/attic/values/archmeister/staging/appsettings.json b/attic/values/archmeister/staging/appsettings.json deleted file mode 100644 index aef83340..00000000 --- a/attic/values/archmeister/staging/appsettings.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "connString": "Username=app;Password=secret;Host=staging-archmeister-rw;Port=5432;Database=app;Pooling=true;", - "oidc": { - "issuer": "https://idp.oceanbox.io/dex", - "authorization_endpoint": "https://idp.oceanbox.io/dex/auth", - "token_endpoint": "https://idp.oceanbox.io/dex/token", - "jwks_uri": "https://idp.oceanbox.io/dex/keys", - "userinfo_endpoint": "https://idp.oceanbox.io/dex/userinfo", - "device_authorization_endpoint": "https://idp.oceanbox.io/dex/device/code", - "clientId": "archmeister_dev", - "clientSecret": "", - "scopes": [ - "openid", - "email", - "offline_access", - "profile" - ] - }, - "sso": { - "cookieDomain": ".oceanbox.io", - "signedOutRedirectUri": "https://idp.oceanbox.io/dex/static/logout.html", - "redis": "staging-redis-master.redis.svc,user=default,password=secret", - "appDomain": "atlantis", - "dataProtectionKeys": "DataProtection-Keys" - }, - "allowedOrigins": [ - "https://maps.oceanbox.io", - "https://atlantis.beta.oceanbox.io", - "https://sorcerer.data.oceanbox.io", - "https://sorcerer.ekman.oceanbox.io", - "https://atlantis.jonas.dev.oceanbox.io", - "https://atlantis.stig.dev.oceanbox.io", - "https://atlantis.simkir.dev.oceanbox.io", - "https://atlantis.local.oceanbox.io:8080" - ], - "logService" : "https://seq.adm.oceanbox.io", - "logApiKey": "", - "cliUsers": [ - "admin:en-to-tre-fire" - ], - "cerbosUrl": "http://staging-cerbos.idp.svc:3593", - "deployEnv": "staging" -} diff --git a/attic/values/archmeister/staging/default.env b/attic/values/archmeister/staging/default.env deleted file mode 100644 index 5aa261a6..00000000 --- a/attic/values/archmeister/staging/default.env +++ /dev/null @@ -1,2 +0,0 @@ -OIDC_CLIENT_SECRET=ieK3yak9zoh3yeewee8quahY6seiv7Ro -SEQ_APIKEY=mxv08mP4RDQE7vgUkbfC diff --git a/attic/values/archmeister/staging/deployment_patch.yaml b/attic/values/archmeister/staging/deployment_patch.yaml deleted file mode 100644 index fd4f0400..00000000 --- a/attic/values/archmeister/staging/deployment_patch.yaml +++ /dev/null @@ -1,49 +0,0 @@ -- op: replace - path: /spec/template/spec/containers/0/env/0 - value: - name: LOG_LEVEL - value: "4" -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: staging-archmeister-app - key: password -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: DB_USERNAME - valueFrom: - secretKeyRef: - name: staging-archmeister-app - key: username -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: DB_HOST - value: staging-archmeister-rw -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_USER - value: default -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: staging-redis - key: redis-password -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: RABBITMQ_USER - value: user -- op: add - path: /spec/template/spec/containers/0/envFrom/- - value: - secretRef: - name: staging-archmeister-env diff --git a/attic/values/archmeister/staging/ingress_patch.yaml b/attic/values/archmeister/staging/ingress_patch.yaml deleted file mode 100644 index bb8c50dc..00000000 --- a/attic/values/archmeister/staging/ingress_patch.yaml +++ /dev/null @@ -1,6 +0,0 @@ -- op: replace - path: /spec/rules/0/http/paths/0/path - value: /internal -- op: add - path: /metadata/annotations/nginx.ingress.kubernetes.io~1whitelist-source-range - value: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 diff --git a/attic/values/archmeister/staging/kustomization.yaml b/attic/values/archmeister/staging/kustomization.yaml deleted file mode 100644 index 33c43e00..00000000 --- a/attic/values/archmeister/staging/kustomization.yaml +++ /dev/null @@ -1,25 +0,0 @@ -generatorOptions: - disableNameSuffixHash: true -configMapGenerator: -- name: staging-archmeister-appsettings - files: - - appsettings.json -secretGenerator: -- name: staging-archmeister-env - envs: - - default.env -patches: -- path: deployment_patch.yaml - target: - version: v1 - group: apps - kind: Deployment -- path: ingress_patch.yaml - target: - group: networking.k8s.io - kind: Ingress - name: staging-archmeister-internal - annotationSelector: oceanbox.io/expose=internal - version: v1 -resources: -- ../base diff --git a/attic/values/archmeister/values-prod.yaml b/attic/values/archmeister/values-prod.yaml deleted file mode 100644 index ec4ad516..00000000 --- a/attic/values/archmeister/values-prod.yaml +++ /dev/null @@ -1,45 +0,0 @@ -replicaCount: 2 - -podAnnotations: - dapr.io/app-id: "prod-archmeister" - dapr.io/enabled: "true" - dapr.io/app-port: "8000" - dapr.io/config: "tracing" - dapr.io/app-protocol: "http" - dapr.io/enable-app-health-check: "true" - dapr.io/app-health-check-path: "/healthz" - dapr.io/app-health-probe-interval: "3" - dapr.io/app-health-probe-timeout: "200" - dapr.io/app-health-threshold: "2" - dapr.io/sidecar-cpu-request: "100m" - dapr.io/sidecar-memory-request: "250Mi" - dapr.io/sidecar-cpu-limit: "300m" - dapr.io/sidecar-memory-limit: "1000Mi" - dapr.io/log-as-json: "true" - -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - hosts: - - host: archmeister.srv.oceanbox.io - paths: - - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - archmeister.srv.oceanbox.io - secretName: prod-archmeister-tls - -cluster: - backupEnabled: true - backupRetention: 60d - instances: 2 - -resources: - limits: - cpu: 1000m - memory: 2Gi - requests: - cpu: 200m - memory: 1Gi - diff --git a/attic/values/archmeister/values-staging.yaml b/attic/values/archmeister/values-staging.yaml deleted file mode 100644 index 9ce8a708..00000000 --- a/attic/values/archmeister/values-staging.yaml +++ /dev/null @@ -1,39 +0,0 @@ -replicaCount: 1 -podAnnotations: - dapr.io/app-id: "staging-archmeister" - dapr.io/enabled: "true" - dapr.io/app-port: "8000" - dapr.io/config: "tracing" - dapr.io/app-protocol: "http" - dapr.io/enable-app-health-check: "true" - dapr.io/app-health-check-path: "/healthz" - dapr.io/app-health-probe-interval: "3" - dapr.io/app-health-probe-timeout: "200" - dapr.io/app-health-threshold: "2" - dapr.io/sidecar-cpu-request: "100m" - dapr.io/sidecar-memory-request: "250Mi" - dapr.io/sidecar-cpu-limit: "300m" - dapr.io/sidecar-memory-limit: "1000Mi" - dapr.io/log-as-json: "true" -image: - tag: 16390a0c-debug -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - # oceanbox.io/expose: internal - hosts: - - host: archmeister.beta.oceanbox.io - paths: - - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - archmeister.beta.oceanbox.io - secretName: staging-archmeister-tls -resources: - limits: - cpu: 1000m - memory: 2Gi - requests: - cpu: 200m - memory: 1Gi diff --git a/attic/values/cerbos/manifests/cerbos-gitlab-token.yaml b/attic/values/cerbos/manifests/cerbos-gitlab-token.yaml deleted file mode 100644 index 234dd730..00000000 --- a/attic/values/cerbos/manifests/cerbos-gitlab-token.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: v1 -data: - GITLAB_TOKEN: Z2xwYXQtOTZvWmVwdnNiSnYyMzVXUWVqTnM= -kind: Secret -metadata: - name: cerbos-gitlab-token -type: Opaque diff --git a/attic/values/cerbos/values-prod.yaml b/attic/values/cerbos/values-prod.yaml deleted file mode 100644 index b0dfbdcf..00000000 --- a/attic/values/cerbos/values-prod.yaml +++ /dev/null @@ -1,3 +0,0 @@ -service: - httpNodePort: 30592 - grpcNodePort: 30593 diff --git a/attic/values/cerbos/values-staging.yaml b/attic/values/cerbos/values-staging.yaml deleted file mode 100644 index 3bf5a00a..00000000 --- a/attic/values/cerbos/values-staging.yaml +++ /dev/null @@ -1,3 +0,0 @@ -service: - httpNodePort: 31592 - grpcNodePort: 31593 diff --git a/attic/values/cerbos/values.yaml b/attic/values/cerbos/values.yaml deleted file mode 100644 index 23271b0d..00000000 --- a/attic/values/cerbos/values.yaml +++ /dev/null @@ -1,46 +0,0 @@ -replicaCount: 1 -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 - -# Spec of the cert-manager certificate to create for the Cerbos deployment. -# If certSpec is not empty, a cert-manager.io/v1/Certificate resource will be created with its spec populated with values from certSpec. -# The certSpec value must be a valid Certificate spec. This Helm chart does not provide any defaults or inject any values into it. -# If cerbos.tlsSecretName is defined, it takes precedence over the generated certificate. -certManager: - certSpec: {} - -# Cerbos service settings. -service: - type: ClusterIP - httpPort: 3592 - grpcPort: 3593 - httpNodePort: 13592 - grpcNodePort: 13593 - annotations: {} - -envFrom: - - secretRef: - name: cerbos-gitlab-token - -cerbos: - httpPort: 3592 - grpcPort: 3593 - tlsSecretName: "" - logLevel: INFO - config: - storage: - driver: "git" - git: - protocol: https - url: https://gitlab.com/oceanbox/cerbos - branch: main - subDir: policies - checkoutDir: /work - updatePollInterval: 60s - https: - username: cerbos - password: ${GITLAB_TOKEN} diff --git a/attic/values/dex/resources/dex-volumes.yaml b/attic/values/dex/resources/dex-volumes.yaml deleted file mode 100644 index 85792216..00000000 --- a/attic/values/dex/resources/dex-volumes.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: v1 -kind: PersistentVolume -metadata: - name: pv-oceanbox-dex -spec: - accessModes: - - ReadOnlyMany - capacity: - storage: 50M - mountOptions: - - vers=4.2 - - soft - nfs: - path: /oceanbox/pv-oceanbox-dex - server: 10.255.241.210 - persistentVolumeReclaimPolicy: Retain - volumeMode: Filesystem ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: oceanbox-dex -spec: - accessModes: - - ReadOnlyMany - resources: - requests: - storage: 50M - storageClassName: "" - volumeMode: Filesystem - volumeName: pv-oceanbox-dex diff --git a/attic/values/dex/templates/.config/dotnet-tools.json b/attic/values/dex/templates/.config/dotnet-tools.json deleted file mode 100644 index f65a4aee..00000000 --- a/attic/values/dex/templates/.config/dotnet-tools.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "fable": { - "version": "3.6.1", - "commands": [ - "fable" - ] - }, - "femto": { - "version": "0.11.0", - "commands": [ - "femto" - ] - } - } -} \ No newline at end of file diff --git a/attic/values/dex/templates/.gitignore b/attic/values/dex/templates/.gitignore deleted file mode 100644 index 1f42bc48..00000000 --- a/attic/values/dex/templates/.gitignore +++ /dev/null @@ -1,355 +0,0 @@ -build/client/* -build/test/* -!build/test/__snapshots__ -dist/ - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ diff --git a/attic/values/dex/templates/.vscode/launch.json b/attic/values/dex/templates/.vscode/launch.json deleted file mode 100644 index 4a1114bc..00000000 --- a/attic/values/dex/templates/.vscode/launch.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "type": "pwa-chrome", - "request": "launch", - "name": "Launch Chrome", - "url": "http://localhost:3000", - "webRoot": "${workspaceFolder}" - } - ] -} \ No newline at end of file diff --git a/attic/values/dex/templates/.vscode/settings.json b/attic/values/dex/templates/.vscode/settings.json deleted file mode 100644 index e58fff5a..00000000 --- a/attic/values/dex/templates/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "editor.detectIndentation": false, - "files.trimTrailingWhitespace": true, - "css.styleSheets": [ - "https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css", - "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css" - ] -} \ No newline at end of file diff --git a/attic/values/dex/templates/DexTemplates.sln b/attic/values/dex/templates/DexTemplates.sln deleted file mode 100644 index 4bbaf895..00000000 --- a/attic/values/dex/templates/DexTemplates.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30114.105 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "DexTemplates", "src\DexTemplates.fsproj", "{FA05EC30-6BCD-440D-AD18-4F2030BA1E83}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/attic/values/dex/templates/README.md b/attic/values/dex/templates/README.md deleted file mode 100644 index 3b10694d..00000000 --- a/attic/values/dex/templates/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Oceanbox IdP - -``` -npm install && npm start -``` - -Other commands: - -```bash -npm test # Run tests -npm run test:watch # Run tests in watch mode -npm test -- --update-snapshots # Update test snapshots -npm run build # Build optimized site for deployment and put in dist/ -``` - -## Vite.js repository structure conventions - -- Put static files in `public/` folder -- Put `index.html` in app root (next to `package.json`) -- Add a reference to the entry JS file (relative path is important): - -```html - -``` diff --git a/attic/values/dex/templates/deploy.sh b/attic/values/dex/templates/deploy.sh deleted file mode 100755 index 0815eba1..00000000 --- a/attic/values/dex/templates/deploy.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -server="root@fs1-0" -path="/vol/brick0/nfs0/k1/pv-oceanbox-dex" -dest="${server}:${path}" - -index=$(basename dist/assets/index-*.js) - -ssh "${server}" -- rm "${path}"/static/js/*.js -scp dist/assets/*.js "${dest}"/static/js/ - -sed -r "s/@index@/${index}/" ./dex/templates/login.html > login.html.$$ -scp ./dex/templates/* "${dest}"/templates/ -scp ./dex/static/*.* "${dest}"/static/ -scp login.html.$$ "${dest}"/templates/login.html -rm login.html.$$ -ssh admin@k1-0.itpartner.intern -- kubectl rollout restart -n oceanbox deployment/dex diff --git a/attic/values/dex/templates/dex/static/img/atlassian-crowd-icon.svg b/attic/values/dex/templates/dex/static/img/atlassian-crowd-icon.svg deleted file mode 100644 index cd94e300..00000000 --- a/attic/values/dex/templates/dex/static/img/atlassian-crowd-icon.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - diff --git a/attic/values/dex/templates/dex/static/img/bitbucket-icon.svg b/attic/values/dex/templates/dex/static/img/bitbucket-icon.svg deleted file mode 100644 index 72f4eb10..00000000 --- a/attic/values/dex/templates/dex/static/img/bitbucket-icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/attic/values/dex/templates/dex/static/img/email-icon.svg b/attic/values/dex/templates/dex/static/img/email-icon.svg deleted file mode 100644 index 10f0d8d0..00000000 --- a/attic/values/dex/templates/dex/static/img/email-icon.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - Shape - Created with Sketch. - - - - - diff --git a/attic/values/dex/templates/dex/static/img/gitea-icon.svg b/attic/values/dex/templates/dex/static/img/gitea-icon.svg deleted file mode 100644 index afeeacb7..00000000 --- a/attic/values/dex/templates/dex/static/img/gitea-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/attic/values/dex/templates/dex/static/img/github-icon.svg b/attic/values/dex/templates/dex/static/img/github-icon.svg deleted file mode 100644 index 5d607282..00000000 --- a/attic/values/dex/templates/dex/static/img/github-icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/attic/values/dex/templates/dex/static/img/gitlab-icon.svg b/attic/values/dex/templates/dex/static/img/gitlab-icon.svg deleted file mode 100644 index e8d408fa..00000000 --- a/attic/values/dex/templates/dex/static/img/gitlab-icon.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - logo-square - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/attic/values/dex/templates/dex/static/img/google-icon.svg b/attic/values/dex/templates/dex/static/img/google-icon.svg deleted file mode 100644 index d667afdf..00000000 --- a/attic/values/dex/templates/dex/static/img/google-icon.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - logo_googleg_48dp - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/attic/values/dex/templates/dex/static/img/keystone-icon.svg b/attic/values/dex/templates/dex/static/img/keystone-icon.svg deleted file mode 100644 index 7a30aba1..00000000 --- a/attic/values/dex/templates/dex/static/img/keystone-icon.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - OpenStack_Logo_Mark - - - - - - - diff --git a/attic/values/dex/templates/dex/static/img/ldap-icon.svg b/attic/values/dex/templates/dex/static/img/ldap-icon.svg deleted file mode 100644 index 506dadc0..00000000 --- a/attic/values/dex/templates/dex/static/img/ldap-icon.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - Combined-Shape - Created with Sketch. - - - - - diff --git a/attic/values/dex/templates/dex/static/img/linkedin-icon.svg b/attic/values/dex/templates/dex/static/img/linkedin-icon.svg deleted file mode 100644 index 409bad5e..00000000 --- a/attic/values/dex/templates/dex/static/img/linkedin-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/attic/values/dex/templates/dex/static/img/microsoft-icon.svg b/attic/values/dex/templates/dex/static/img/microsoft-icon.svg deleted file mode 100644 index 739c395a..00000000 --- a/attic/values/dex/templates/dex/static/img/microsoft-icon.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/attic/values/dex/templates/dex/static/img/ob.png b/attic/values/dex/templates/dex/static/img/ob.png deleted file mode 100644 index 8c041554..00000000 Binary files a/attic/values/dex/templates/dex/static/img/ob.png and /dev/null differ diff --git a/attic/values/dex/templates/dex/static/img/oidc-icon.svg b/attic/values/dex/templates/dex/static/img/oidc-icon.svg deleted file mode 100644 index e2817b0a..00000000 --- a/attic/values/dex/templates/dex/static/img/oidc-icon.svg +++ /dev/null @@ -1,156 +0,0 @@ - - - - - facebook web - - - - - - - - - - - - - image/svg+xml - - facebook web - - - User:ZyMOS - - - - - - - - - - - - - - - Open Icon Library - - - - - - - - - - - - - - - - - - diff --git a/attic/values/dex/templates/dex/static/img/saml-icon.svg b/attic/values/dex/templates/dex/static/img/saml-icon.svg deleted file mode 100644 index 506dadc0..00000000 --- a/attic/values/dex/templates/dex/static/img/saml-icon.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - Combined-Shape - Created with Sketch. - - - - - diff --git a/attic/values/dex/templates/dex/static/js/index.c3f9eb2e.js b/attic/values/dex/templates/dex/static/js/index.c3f9eb2e.js deleted file mode 100644 index 20025e83..00000000 --- a/attic/values/dex/templates/dex/static/js/index.c3f9eb2e.js +++ /dev/null @@ -1,44 +0,0 @@ -import{s as Je,y as Ke}from"./vendor.86e21c29.js";const Ze=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const s of i.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerpolicy&&(i.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?i.credentials="include":o.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}};Ze();function q(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function ze(e){return typeof e.CompareTo=="function"}function Xe(e){return typeof e.Equals=="function"}function Ye(e){return typeof e.GetHashCode=="function"}function we(e,t){return Object.getPrototypeOf(e).constructor===Object.getPrototypeOf(t).constructor}class Qe{constructor(t){this.iter=t}["System.Collections.Generic.IEnumerator`1.get_Current"](){return this.current}["System.Collections.IEnumerator.get_Current"](){return this.current}["System.Collections.IEnumerator.MoveNext"](){const t=this.iter.next();return this.current=t.value,!t.done}["System.Collections.IEnumerator.Reset"](){throw new Error("JS iterators cannot be reset")}Dispose(){}}function le(e){return typeof e.GetEnumerator=="function"?e.GetEnumerator():new Qe(e[Symbol.iterator]())}function $e(e){return{[Symbol.iterator](){return this},next(){const t=e["System.Collections.IEnumerator.MoveNext"](),n=t?e["System.Collections.IEnumerator.get_Current"]():void 0;return{done:!t,value:n}}}}function me(e){const t=e;return typeof t.offset=="number"?t.offset:e.kind===1?0:e.getTimezoneOffset()*-6e4}class P{static id(t){return P.idMap.has(t)||P.idMap.set(t,++P.count),P.idMap.get(t)}}P.idMap=new WeakMap;P.count=0;function et(e){let t=0,n=5381;const r=e.length;for(;t(t<<5)+t^n)}function tt(e){return e.getTime()}function nt(e){const t=e.length,n=new Array(t);for(let r=0;rne(n));return te(t)}else return ae(P.id(e))}}}function rt(e,t,n){if(e==null)return t==null;if(t==null||e.length!==t.length)return!1;for(let r=0;rt===1?n(...e.concat([r])):be(e.concat([r]),t-1,n)}function ct(e,t){return t==null||t.length===1?t:ve in t?t[ve]:be([],e,t)}function ft(e){let t=0,n="[";for(const r of e){if(t===0)n+=H(r);else if(t===100){n+="; ...";break}else n+="; "+H(r);t++}return n+"]"}function H(e,t=0){if(e!=null&&typeof e=="object"){if(typeof e.toString=="function")return e.toString();if(Symbol.iterator in e)return ft(e);{const n=Object.getPrototypeOf(e).constructor;return n===Object&&t<10?"{ "+Object.entries(e).map(([r,o])=>r+" = "+H(o,t+1)).join(` - `)+" }":n.name}}return String(e)}function lt(e,t){if(t.length===0)return e;{let n="",r=!0;return t.length===1?(n=H(t[0]),r=n.indexOf(" ")>=0):n=t.map(o=>H(o)).join(", "),e+(r?" (":" ")+n+(r?")":"")}}class at{get name(){return this.cases()[this.tag]}toJSON(){return this.fields.length===0?this.name:[this.name].concat(this.fields)}toString(){return lt(this.name,this.fields)}GetHashCode(){const t=this.fields.map(n=>ne(n));return t.splice(0,0,ae(this.tag)),te(t)}Equals(t){return this===t?!0:we(this,t)&&this.tag===t.tag?de(this.fields,t.fields):!1}CompareTo(t){return this===t?0:we(this,t)?this.tag===t.tag?Fe(this.fields,t.fields):this.tagt,this.setter=r=>{t=r})}get contents(){return this.getter()}set contents(t){this.setter(t)}}class gt{}const Se=Symbol("numeric");var g={GetHashCode(){return te([this.s,this.e].concat(this.c))},Equals(e){return!this.cmp(e)},CompareTo(e){return this.cmp(e)},[Se](){const e=this;return{multiply:t=>e.mul(t),toPrecision:t=>e.toPrecision(t),toExponential:t=>e.toExponential(t),toFixed:t=>e.toFixed(t),toHex:()=>(Number(e)>>>0).toString(16)}}},pt=28,_t=1,R=1e6,ye=1e6,wt=-29,mt=29,dt=!1,z="[big.js] ",A=z+"Invalid ",re=A+"decimal places",Et=A+"rounding mode",Ie=z+"Division by zero",C=void 0,Ft=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function Ce(){function e(t){var n=this;if(!(n instanceof e))return t===C?Ce():new e(t);if(t instanceof e)n.s=t.s,n.e=t.e,n.c=t.c.slice(),vt(n);else{if(typeof t!="string"){if(e.strict===!0)throw TypeError(A+"number");t=t===0&&1/t<0?"-0":String(t)}bt(n,t)}n.constructor=e}return e.prototype=g,e.DP=pt,e.RM=_t,e.NE=wt,e.PE=mt,e.strict=dt,e}function vt(e){if(e.c.length>1&&!e.c[0]){let t=e.c.findIndex(n=>n);e.c=e.c.slice(t),e.e=e.e-t}}function bt(e,t){var n,r,o;if(!Ft.test(t))throw Error(A+"number");for(e.s=t.charAt(0)=="-"?(t=t.slice(1),-1):1,(n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),o=t.length,r=0;r=5||n===2&&(o[0]>5||o[0]===5&&(r||o[1]!==C))),o.length=1,r?(e.e=e.e-t+1,o[0]=1):o[0]=e.e=0;else if(tu>=t&&s>0)<0;if(r=n===1&&o[t]>=5||n===2&&(o[t]>5||o[t]===5&&(r||o[t+1]!==C||o[t-1]&1))||n===3&&(r||!i),o.length=t--,r)for(;++o[t]>9;)o[t]=0,t--||(++e.e,o.unshift(1));for(t=o.length;!o[--t];)o.pop()}return e}function U(e,t,n){var r=e.e,o=e.c.join(""),i=o.length;if(t)o=o.charAt(0)+(i>1?"."+o.slice(1):"")+(r<0?"e":"e+")+r;else if(r<0){for(;++r;)o="0"+o;o="0."+o}else if(r>0)if(++r>i)for(r-=i;r--;)o+="0";else r1&&(o=o.charAt(0)+"."+o.slice(1));return e.s<0&&n?"-"+o:o}g.abs=function(){var e=new this.constructor(this);return e.s=1,e};g.cmp=function(e){var t,n=this.constructor,r=new n(this),e=new n(e),o=r.c,i=e.c,s=r.s,u=e.s,f=r.e,c=e.e;if(!o[0]||!i[0])return o[0]?s:i[0]?-u:0;if(s!=u)return s;if(t=s<0,f!=c)return f>c^t?1:-1;for(u=Math.max(o.length,i.length),s=0;sc^t?1:-1;return 0};g.div=function(e){var t=this.constructor,n=new t(this),e=new t(e),r=n.c,o=e.c,i=n.s==e.s?1:-1,s=t.DP;if(s!==~~s||s<0||s>R)throw Error(re);if(!o[0])throw Error(Ie);if(!r[0])return e.s=i,e.c=[e.e=0],e;var u,f,c,l,a,h=o.slice(),p=u=o.length,I=r.length,_=r.slice(0,u),d=_.length,T=e,ce=T.c=[],fe=0,K=s+(T.e=n.e-e.e)+1;for(T.s=i,i=K<0?0:K,h.unshift(0);d++d?1:-1;else for(a=-1,l=0;++a_[a]?1:-1;break}if(l<0){for(f=d==u?o:h;d;){if(_[--d]K&&k(T,K,t.RM,_[0]!==C),T};g.eq=function(e){return this.cmp(e)===0};g.gt=function(e){return this.cmp(e)>0};g.gte=function(e){return this.cmp(e)>-1};g.lt=function(e){return this.cmp(e)<0};g.lte=function(e){return this.cmp(e)<1};g.minus=g.sub=function(e){var t,n,r,o,i=this.constructor,s=new i(this),e=new i(e),u=s.s,f=e.s;if(u!=f)return e.s=-f,s.plus(e);var c=s.c.slice(),l=s.e,a=e.c,h=e.e;if(!c[0]||!a[0])return a[0]?e.s=-f:c[0]?e=new i(s):e.s=1,e;if(u=l-h){for((o=u<0)?(u=-u,r=c):(h=l,r=a),r.reverse(),f=u;f--;)r.push(0);r.reverse()}else for(n=((o=c.length0)for(;f--;)c[t++]=0;for(f=t;n>u;){if(c[--n]0?(f=s,r=c):(t=-t,r=u),r.reverse();t--;)r.push(0);r.reverse()}for(u.length-c.length<0&&(r=c,c=u,u=r),t=c.length,n=0;t;u[t]%=10)n=(u[--t]=u[t]+c[t]+n)/10|0;for(n&&(u.unshift(n),++f),t=u.length;u[--t]===0;)u.pop();return e.c=u,e.e=f,e};g.pow=function(e){var t=this.constructor,n=new t(this),r=new t("1"),o=new t("1"),i=e<0;if(e!==~~e||e<-ye||e>ye)throw Error(A+"exponent");for(i&&(e=-e);e&1&&(r=r.times(n)),e>>=1,!!e;)n=n.times(n);return i?o.div(r):r};g.prec=function(e,t){if(e!==~~e||e<1||e>R)throw Error(A+"precision");return k(new this.constructor(this),e,t)};g.round=function(e,t){if(e===C)e=0;else if(e!==~~e||e<-R||e>R)throw Error(re);return k(new this.constructor(this),e+this.e+1,t)};g.sqrt=function(){var e,t,n,r=this.constructor,o=new r(this),i=o.s,s=o.e,u=new r("0.5");if(!o.c[0])return new r(o);if(i<0)throw Error(z+"No square root");i=Math.sqrt(o+""),i===0||i===1/0?(t=o.c.join(""),t.length+s&1||(t+="0"),i=Math.sqrt(t),s=((s+1)/2|0)-(s<0||s&1),e=new r((i==1/0?"5e":(i=i.toExponential()).slice(0,i.indexOf("e")+1))+s)):e=new r(i+""),s=e.e+(r.DP+=4);do n=e,e=u.times(n.plus(o.div(n)));while(n.c.slice(0,s).join("")!==e.c.slice(0,s).join(""));return k(e,(r.DP-=4)+e.e+1,r.RM)};g.times=g.mul=function(e){var t,n=this.constructor,r=new n(this),e=new n(e),o=r.c,i=e.c,s=o.length,u=i.length,f=r.e,c=e.e;if(e.s=r.s==e.s?1:-1,!o[0]||!i[0])return e.c=[e.e=0],e;for(e.e=f+c,sf;)u=t[c]+i[f]*o[c-f-1]+u,t[c--]=u%10,u=u/10|0;t[c]=u}for(u?++e.e:t.shift(),f=t.length;!t[--f];)t.pop();return e.c=t,e};g.toExponential=function(e,t){var n=this,r=n.c[0];if(e!==C){if(e!==~~e||e<0||e>R)throw Error(re);for(n=k(new n.constructor(n),++e,t);n.c.lengthR)throw Error(re);for(n=k(new n.constructor(n),e+n.e+1,t),e=e+n.e+1;n.c.length=t.PE,!!e.c[0])};g.toNumber=function(){var e=Number(U(this,!0,!0));if(this.constructor.strict===!0&&!this.eq(e.toString()))throw Error(z+"Imprecise conversion");return e};g.toPrecision=function(e,t){var n=this,r=n.constructor,o=n.c[0];if(e!==C){if(e!==~~e||e<1||e>R)throw Error(A+"precision");for(n=k(new r(n),e,t);n.c.length=r.PE,!!o)};g.valueOf=function(){var e=this,t=e.constructor;if(t.strict===!0)throw Error(z+"valueOf disallowed");return U(e,e.e<=t.NE||e.e>=t.PE,!0)};var D=Ce();new D(0);new D(1);new D(-1);new D("79228162514264337593543950335");new D("-79228162514264337593543950335");var Oe;(function(e){e[e.AllowHexSpecifier=512]="AllowHexSpecifier"})(Oe||(Oe={}));var M=null;try{M=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function O(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}O.prototype.GetHashCode=function(){let e=this.unsigned?1:0;return e=(e<<5)+e^this.high,e=(e<<5)+e^this.low,e};O.prototype.Equals=function(e){return v(this,e)};O.prototype.CompareTo=function(e){return se(this,e)};O.prototype.toString=function(e){return Q(this,e)};O.prototype.toJSON=function(){return Q(this)};O.prototype[Se]=function(){const e=this;return{multiply:t=>y(e,t),toPrecision:t=>String(e)+0 .toPrecision(t).substr(1),toExponential:t=>String(e)+0 .toExponential(t).substr(1),toFixed:t=>String(e)+0 .toFixed(t).substr(1),toHex:()=>Q(e.unsigned?e:jt(Lt(e),!0),16)}};Object.defineProperty(O.prototype,"__isLong__",{value:!0});function N(e){return(e&&e.__isLong__)===!0}var Ne={},Pe={};function V(e,t){var n,r,o;return t?(e>>>=0,(o=0<=e&&e<256)&&(r=Pe[e],r)?r:(n=w(e,(e|0)<0?-1:0,!0),o&&(Pe[e]=n),n)):(e|=0,(o=-128<=e&&e<128)&&(r=Ne[e],r)?r:(n=w(e,e<0?-1:0,!1),o&&(Ne[e]=n),n))}function b(e,t){if(isNaN(e))return t?L:S;if(t){if(e<0)return L;if(e>=Me)return Ct}else{if(e<=-Le)return E;if(e+1>=Le)return It}return e<0?m(b(-e,t)):w(e%G|0,e/G|0,t)}function w(e,t,n){return new O(e,t,n)}var oe=Math.pow;function ke(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return S;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||360)throw Error("interior hyphen");if(r===0)return m(ke(e.substring(1),t,n));for(var o=b(oe(n,8)),i=S,s=0;s>>0:e.low}function ie(e){return e.unsigned?(e.high>>>0)*G+(e.low>>>0):e.high*G+(e.low>>>0)}function Q(e,t){if(t=t||10,t<2||36>>0,l=c.toString(t);if(s=f,j(s))return l+u;for(;l.length<6;)l="0"+l;u=""+l+u}}function j(e){return e.high===0&&e.low===0}function F(e){return!e.unsigned&&e.high<0}function je(e){return(e.low&1)==1}function v(e,t){return N(t)||(t=W(t)),e.unsigned!==t.unsigned&&e.high>>>31==1&&t.high>>>31==1?!1:e.high===t.high&&e.low===t.low}function xe(e,t){return se(e,t)<0}function ge(e,t){return se(e,t)>0}function Ot(e,t){return se(e,t)>=0}function se(e,t){if(N(t)||(t=W(t)),v(e,t))return 0;var n=F(e),r=F(t);return n&&!r?-1:!n&&r?1:e.unsigned?t.high>>>0>e.high>>>0||t.high===e.high&&t.low>>>0>e.low>>>0?-1:1:F($(e,t))?-1:1}function m(e){return!e.unsigned&&v(e,E)?E:B(Nt(e),X)}function B(e,t){N(t)||(t=W(t));var n=e.high>>>16,r=e.high&65535,o=e.low>>>16,i=e.low&65535,s=t.high>>>16,u=t.high&65535,f=t.low>>>16,c=t.low&65535,l=0,a=0,h=0,p=0;return p+=i+c,h+=p>>>16,p&=65535,h+=o+f,a+=h>>>16,h&=65535,a+=r+u,l+=a>>>16,a&=65535,l+=n+s,l&=65535,w(h<<16|p,l<<16|a,e.unsigned)}function $(e,t){return N(t)||(t=W(t)),B(e,m(t))}function y(e,t){if(j(e))return e.unsigned?L:S;if(N(t)||(t=W(t)),M){var n=M.mul(e.low,e.high,t.low,t.high);return w(n,M.get_high(),e.unsigned)}if(j(t))return e.unsigned?L:S;if(v(e,E))return je(t)?E:S;if(v(t,E))return je(e)?E:S;if(F(e))return F(t)?y(m(e),m(t)):m(y(m(e),t));if(F(t))return m(y(e,m(t)));if(xe(e,Re)&&xe(t,Re))return b(ie(e)*ie(t),e.unsigned);var r=e.high>>>16,o=e.high&65535,i=e.low>>>16,s=e.low&65535,u=t.high>>>16,f=t.high&65535,c=t.low>>>16,l=t.low&65535,a=0,h=0,p=0,I=0;return I+=s*l,p+=I>>>16,I&=65535,p+=i*l,h+=p>>>16,p&=65535,p+=s*c,h+=p>>>16,p&=65535,h+=o*l,a+=h>>>16,h&=65535,h+=i*c,a+=h>>>16,h&=65535,h+=s*f,a+=h>>>16,h&=65535,a+=r*l+o*c+i*f+s*u,a&=65535,w(p<<16|I,a<<16|h,e.unsigned)}function x(e,t){if(N(t)||(t=W(t)),j(t))throw Error("division by zero");if(M){if(!e.unsigned&&e.high===-2147483648&&t.low===-1&&t.high===-1)return e;var n=(e.unsigned?M.div_u:M.div_s)(e.low,e.high,t.low,t.high);return w(n,M.get_high(),e.unsigned)}if(j(e))return e.unsigned?L:S;var r,o,i;if(e.unsigned){if(t.unsigned||(t=Mt(t)),ge(t,e))return L;if(ge(t,Dt(e,1)))return yt;i=L}else{if(v(e,E)){if(v(t,X)||v(t,Ae))return E;if(v(t,E))return X;var s=kt(e,1);return r=Pt(x(s,t),1),v(r,S)?F(t)?X:Ae:(o=$(e,y(t,r)),i=B(r,x(o,t)),i)}else if(v(t,E))return e.unsigned?L:S;if(F(e))return F(t)?x(m(e),m(t)):m(x(m(e),t));if(F(t))return m(x(e,m(t)));i=S}for(o=e;Ot(o,t);){r=Math.max(1,Math.floor(ie(o)/ie(t)));for(var u=Math.ceil(Math.log(r)/Math.LN2),f=u<=48?1:oe(2,u-48),c=b(r),l=y(c,t);F(l)||ge(l,o);)r-=f,c=b(r,e.unsigned),l=y(c,t);j(c)&&(c=X),i=B(i,c),o=$(o,l)}return i}function Nt(e){return w(~e.low,~e.high,e.unsigned)}function Pt(e,t){return N(t)&&(t=Y(t)),(t&=63)==0?e:t<32?w(e.low<>>32-t,e.unsigned):w(0,e.low<>>t|e.high<<32-t,e.high>>t,e.unsigned):w(e.high>>t-32,e.high>=0?0:-1,e.unsigned)}function Dt(e,t){if(N(t)&&(t=Y(t)),t&=63,t===0)return e;var n=e.high;if(t<32){var r=e.low;return w(r>>>t|n<<32-t,n>>>t,e.unsigned)}else return w(t===32?n:n>>>t-32,0,e.unsigned)}function Mt(e){return e.unsigned?e:w(e.low,e.high,!0)}function Lt(e,t){return t?Rt(e):At(e)}function Rt(e){var t=e.high,n=e.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]}function At(e){var t=e.high,n=e.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]}function jt(e,t,n){return n?xt(e,t):Tt(e,t)}function xt(e,t){return new O(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)}function Tt(e,t){return new O(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}class J{constructor(t){this.value=t}toJSON(){return this.value}toString(){return String(this.value)}GetHashCode(){return ne(this.value)}Equals(t){return t==null?!1:Z(this.value,t instanceof J?t.value:t)}CompareTo(t){return t==null?1:he(this.value,t instanceof J?t.value:t)}}function pe(e){return e==null||e instanceof J?new J(e):e}function ue(e){if(e==null)throw new Error("Option has no value");return e instanceof J?e.value:e}function Te(e){return e==null?[]:[ue(e)]}function qt(e,...t){return{strs:e,args:t}}function Ht(e){throw new Error(e)}function Ut(e,t,n,r){const o=t|0;return e.fill(r,o,o+n)}function Vt(e,t,n){if(t==null)return n==null;if(n==null)return!1;{let r=0,o=!0;const i=t.length|0,s=n.length|0;if(i>s)return!1;if(i{e:for(;;){const o=n,s=r.tail;if(s!=null){n=o+1,r=s;continue e}else return o|0}})(0,e)|0}function Bt(e){if(e.tail!=null)return e.head;throw new Error(qe+"\\nParameter name: list")}function Jt(e){const t=e.tail;if(t!=null)return t;throw new Error(qe+"\\nParameter name: list")}function Kt(e){const t=Gt(e)|0,n=Ut(new Array(t),0,t,null);return((o,i)=>{e:for(;;){const s=o,u=i;if(!Wt(u)){n[s]=Bt(u),o=s+1,i=Jt(u);continue e}break}})(0,e),n}const Zt="Enumeration already finished.",zt="Enumeration has not started. Call MoveNext.",Xt="Reset is not supported on this enumerator.";function Yt(){throw new Error(Xt)}function Qt(){throw new Error(zt)}function $t(){throw new Error(Zt)}class en{constructor(t){this.f=t}toString(){const t=this,n=4;let r=0,o="seq [";const i=le(t);try{for(;r0&&(o=o+"; "),o=o+H(i["System.Collections.Generic.IEnumerator`1.get_Current"]()),r=r+1|0;return r===n&&(o=o+"; ..."),o+"]"}finally{i.Dispose()}}GetEnumerator(){return this.f()}[Symbol.iterator](){return $e(this.GetEnumerator())}["System.Collections.IEnumerable.GetEnumerator"](){return this.f()}}function tn(e){return new en(e)}class nn{constructor(t,n,r){this.current=t,this.next=n,this.dispose=r}["System.Collections.Generic.IEnumerator`1.get_Current"](){return this.current()}["System.Collections.IEnumerator.get_Current"](){return this.current()}["System.Collections.IEnumerator.MoveNext"](){return this.next()}["System.Collections.IEnumerator.Reset"](){Yt()}Dispose(){this.dispose()}}function rn(e,t,n){return new nn(e,t,n)}function on(e,t,n){let r=!1,o,i=pe(e());const s=()=>{if(i!=null){const f=ue(i);try{n(f)}finally{i=void 0}}},u=()=>{try{s()}finally{o=void 0}};return rn(()=>(r||Qt(),o!=null?ue(o):$t()),()=>{if(r||(r=!0),i!=null){const f=ue(i);let c;try{c=t(f)}catch(l){throw u(),l}return c!=null?(o=c,!0):(u(),!1)}else return!1},s)}function sn(e,t){t==null&&Ht(e)}function un(e){return tn(e)}function _e(e){return sn("source",e),le(e)}function cn(e,t,n){return un(()=>on(e,t,n))}function fn(e,t,n){const r=_e(n);try{let o=t;for(;r["System.Collections.IEnumerator.MoveNext"]();)o=e(o,r["System.Collections.Generic.IEnumerator`1.get_Current"]());return o}finally{r.Dispose()}}function ee(e,t){fn((n,r)=>{e(r)},void 0,t)}function ln(e,t,n){return cn(()=>[_e(t),_e(n)],r=>{const o=r[0],i=r[1];return(o["System.Collections.IEnumerator.MoveNext"]()?i["System.Collections.IEnumerator.MoveNext"]():!1)?pe(e(o["System.Collections.Generic.IEnumerator`1.get_Current"](),i["System.Collections.Generic.IEnumerator`1.get_Current"]())):void 0},r=>{try{r[0].Dispose()}finally{r[1].Dispose()}})}function an(e,t){return ln((n,r)=>[n,r],e,t)}function hn(e,t){setTimeout(t,e)}function He(e){hn(0,e)}class Ue extends at{constructor(t,...n){super();this.tag=t|0,this.fields=n}cases(){return["OnConnected","OnRender"]}}class Ve{constructor(t){this["host@80"]=t,this._firstRun=!0,this._rendering=!1,this._args=[],this._stateIndex=0,this._effectIndex=0,this._states=[],this._effects=[],this._disposables=[]}get host(){return this["host@80"]}fail(){throw new Error("Hooks must be called consistently for each render call")}requestUpdate(){this["host@80"].requestUpdate()}renderWith(t){const n=this;if(n._firstRun?!0:!Vt((r,o)=>Z(r,o),t,n._args))return n._args=t,n.render()}render(){const t=this;t._stateIndex=0,t._effectIndex=0,t._rendering=!0;const n=t["host@80"].renderFn.apply(t["host@80"],t._args);return(t._firstRun?!1:t._stateIndex!==t._states.length?!0:t._effectIndex!==t._effects.length)&&t.fail(),t._rendering=!1,t["host@80"].isConnected&&t.runEffects(t._firstRun,!0),t._firstRun=!1,n}checkRendering(){const t=this;t._rendering||t.fail()}runEffects(t,n){const r=this;He(()=>{ee(o=>{o.tag===0?t&&r._disposables.push(o.fields[0]()):n&&o.fields[0]()},r._effects)})}setState(t,n,r){let o,i;const s=this;o=n,i=s._states[t],!(ct(2,r)==null?Z(i,o):r(i,o))&&(s._states[t]=n,s._rendering?He(()=>{s["host@80"].requestUpdate()}):s["host@80"].requestUpdate())}getState(){const t=this;t._stateIndex>=t._states.length&&t.fail();const n=t._stateIndex|0;return t._stateIndex=n+1|0,[n,t._states[n]]}addState(t){const n=this;return n._states.push(t),[n._states.length-1,t]}disconnect(){const t=this;let n=le(t._disposables);try{for(;n["System.Collections.IEnumerator.MoveNext"]();)n["System.Collections.Generic.IEnumerator`1.get_Current"]().Dispose()}finally{n.Dispose()}ut(t._disposables)}useState(t){const n=this;n.checkRendering();const r=n._firstRun?n.addState(t()):n.getState();return[r[1],o=>{n.setState(r[0],o)}]}useRef(t){const n=this;return n.checkRendering(),n._firstRun?n.addState(new ht(t()))[1]:n.getState()[1]}setEffect(t){const n=this;if(n.checkRendering(),n._firstRun)n._effects.push(t);else{n._effectIndex>=n._effects.length&&n.fail();const r=n._effectIndex|0;n._effectIndex=r+1|0,n._effects[r]=t}}useEffect(t){this.setEffect(new Ue(1,t))}useEffectOnce(t){this.setEffect(new Ue(0,t))}}function gn(e){if(e==null?!0:!(e.hooks instanceof Ve))throw new Error("Cannot access hook context, make sure the hook is called on top of a HookComponent function");return e.hooks}function We(e){return e!=null}function Ge(){throw new Error("LitElement.init must be called on top of the render function")}function pn(e){throw new Error(`'${e}' field in \`props\` record is not of Prop<'T> type`)}class _n{constructor(t,n){this.defaultValue=t,this.options=n}}function wn(e){return[e.defaultValue,e.options]}class mn{constructor(){this._initPromise=null,this._useShadowDom=!0,this._props=null,this._styles=null}get props(){return this._props}set props(t){const n=this;n._props=t}get styles(){return this._styles}set styles(t){const n=this;n._styles=t}get useShadowDom(){return this._useShadowDom}set useShadowDom(t){const n=this;n._useShadowDom=t}init(t){const n=this;return n._initPromise=t(n),[null,null]}get hooks(){return Ge()}}function dn(){return new mn}function Be(e){return e._initPromise}class En extends Je{constructor(t){super();this._hooks=new Ve(this),t(this)}render(){return this._hooks.render()}disconnectedCallback(){const t=this;super.disconnectedCallback(),t._hooks.disconnect()}init(t){const n=this;return[n,n]}get hooks(){return this._hooks}}class Fn extends gt{constructor(t){super();this.name=t}Decorate(t){const n=this,r=dn();if(t.length>0)throw new Error("Render function for LitElement cannot take arguments");try{t.apply(r,[])}catch(i){}return Be(r)==null&&Ge(),Be(r).then(()=>{let i;const s=r,u=We(s.styles)?Kt(s.styles):void 0;let f;if(We(s.props)){const l=[],a={};ee(h=>{const p=h[0];let I;const _=h[1];I=_ instanceof _n?wn(_):pn(p);const d=I[0];a[p]=I[1],d!=null&&l.push([p,d])},(i=Object.values(s.props),an(Object.keys(s.props),i))),f=[pe(a),h=>{ee(p=>{h[p[0]]=p[1]},l)}]}else f=[void 0,l=>{}];const c=class extends En{constructor(){super(f[1])}get renderFn(){return t}};ee(l=>{Object.defineProperty(c,"properties",{get:()=>l})},Te(f[0])),ee(l=>{Object.defineProperty(c,"styles",{get:()=>l})},Te(u)),s.useShadowDom||(c.prototype.createRenderRoot=function(){return this}),customElements.define(n.name,c)}),()=>{throw new Error(`${n.name} is not immediately callable, it must be created in HTML`)}}}function vn(e,t){return e(t.strs,...t.args)}const bn=(()=>{const e=Ke;return t=>vn(e,t)})();function Sn(e){return e.value}function yn(e){throw new Error("A function supposed to be replaced by JS native code has been called, please check.")}yn();new Fn("login-app").Decorate(function(){this.init(n=>(n.useShadowDom=!1,Promise.resolve(void 0)));const e=gn(this).useState(()=>""),t=n=>{let r;const o=e[0].split("@");r=o.length===1?[o[0],"default"]:[o[0],o[1]];let i;const s=document.getElementById(r[1]);i=s==null?document.getElementById("default"):s;const u=i.attributes[0];u.value.indexOf("?")>=0?u.value=u.value+"&":u.value=u.value+"?",u.value=u.value+r[0],i.click()};return bn(qt` -
-
{n.key==="Enter"&&t()}}> - -
- Oceanbox login -
- {e[1](Sn(n.target))}}> -
-
- Next -
-
-
-
- - `)}); diff --git a/attic/values/dex/templates/dex/static/js/vendor.86e21c29.js b/attic/values/dex/templates/dex/static/js/vendor.86e21c29.js deleted file mode 100644 index ad5c81cb..00000000 --- a/attic/values/dex/templates/dex/static/js/vendor.86e21c29.js +++ /dev/null @@ -1,1393 +0,0 @@ -var Xt=Object.defineProperty,Ze=Object.defineProperties,Je=Object.getOwnPropertyDescriptor,Ye=Object.getOwnPropertyDescriptors,Qt=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable,te=(t,e,r)=>e in t?Xt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,N=(t,e)=>{for(var r in e||(e={}))Ge.call(e,r)&&te(t,r,e[r]);if(Qt)for(var r of Qt(e))Xe.call(e,r)&&te(t,r,e[r]);return t},$t=(t,e)=>Ze(t,Ye(e)),a=(t,e,r,o)=>{for(var i=o>1?void 0:o?Je(e,r):e,s=t.length-1,n;s>=0;s--)(n=t[s])&&(i=(o?n(e,r,i):n(i))||i);return o&&i&&Xt(e,r,i),i},W=new WeakMap,ee=new WeakMap,K=new WeakMap,re=class{constructor(t,e){(this.host=t).addController(this),this.options=N({form:r=>r.closest("form"),name:r=>r.name,value:r=>r.value,defaultValue:r=>r.defaultValue,disabled:r=>{var o;return(o=r.disabled)!=null?o:!1},reportValidity:r=>typeof r.reportValidity=="function"?r.reportValidity():!0,setValue:(r,o)=>r.value=o},e),this.handleFormData=this.handleFormData.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleFormReset=this.handleFormReset.bind(this),this.reportFormValidity=this.reportFormValidity.bind(this),this.handleUserInput=this.handleUserInput.bind(this)}hostConnected(){this.form=this.options.form(this.host),this.form&&(W.has(this.form)?W.get(this.form).add(this.host):W.set(this.form,new Set([this.host])),this.form.addEventListener("formdata",this.handleFormData),this.form.addEventListener("submit",this.handleFormSubmit),this.form.addEventListener("reset",this.handleFormReset),K.has(this.form)||(K.set(this.form,this.form.reportValidity),this.form.reportValidity=()=>this.reportFormValidity())),this.host.addEventListener("sl-input",this.handleUserInput)}hostDisconnected(){var t;this.form&&((t=W.get(this.form))==null||t.delete(this.host),this.form.removeEventListener("formdata",this.handleFormData),this.form.removeEventListener("submit",this.handleFormSubmit),this.form.removeEventListener("reset",this.handleFormReset),K.has(this.form)&&(this.form.reportValidity=K.get(this.form),K.delete(this.form)),this.form=void 0),this.host.removeEventListener("sl-input",this.handleUserInput)}hostUpdated(){var t;const e=this.host,r=Boolean(ee.get(e)),o=Boolean(e.invalid),i=Boolean(e.required);((t=this.form)==null?void 0:t.noValidate)?(e.removeAttribute("data-required"),e.removeAttribute("data-optional"),e.removeAttribute("data-invalid"),e.removeAttribute("data-valid"),e.removeAttribute("data-user-invalid"),e.removeAttribute("data-user-valid")):(e.toggleAttribute("data-required",i),e.toggleAttribute("data-optional",!i),e.toggleAttribute("data-invalid",o),e.toggleAttribute("data-valid",!o),e.toggleAttribute("data-user-invalid",o&&r),e.toggleAttribute("data-user-valid",!o&&r))}handleFormData(t){const e=this.options.disabled(this.host),r=this.options.name(this.host),o=this.options.value(this.host),i=this.host.tagName.toLowerCase()==="sl-button";!e&&!i&&typeof r=="string"&&r.length>0&&typeof o!="undefined"&&(Array.isArray(o)?o.forEach(s=>{t.formData.append(r,s.toString())}):t.formData.append(r,o.toString()))}handleFormSubmit(t){var e;const r=this.options.disabled(this.host),o=this.options.reportValidity;this.form&&!this.form.noValidate&&((e=W.get(this.form))==null||e.forEach(i=>{this.setUserInteracted(i,!0)})),this.form&&!this.form.noValidate&&!r&&!o(this.host)&&(t.preventDefault(),t.stopImmediatePropagation())}handleFormReset(){this.options.setValue(this.host,this.options.defaultValue(this.host)),this.setUserInteracted(this.host,!1)}async handleUserInput(){await this.host.updateComplete,this.setUserInteracted(this.host,!0)}reportFormValidity(){if(this.form&&!this.form.noValidate){const t=this.form.querySelectorAll("*");for(const e of t)if(typeof e.reportValidity=="function"&&!e.reportValidity())return!1}return!0}setUserInteracted(t,e){ee.set(t,e),t.requestUpdate()}doAction(t,e){if(this.form){const r=document.createElement("button");r.type=t,r.style.position="absolute",r.style.width="0",r.style.height="0",r.style.clipPath="inset(50%)",r.style.overflow="hidden",r.style.whiteSpace="nowrap",e&&(r.name=e.name,r.value=e.value,["formaction","formenctype","formmethod","formnovalidate","formtarget"].forEach(o=>{e.hasAttribute(o)&&r.setAttribute(o,e.getAttribute(o))})),this.form.append(r),r.click(),r.remove()}}reset(t){this.doAction("reset",t)}submit(t){this.doAction("submit",t)}},ut=window,wt=ut.ShadowRoot&&(ut.ShadyCSS===void 0||ut.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,At=Symbol(),oe=new WeakMap,ie=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==At)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(wt&&t===void 0){const r=e!==void 0&&e.length===1;r&&(t=oe.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&oe.set(e,t))}return t}toString(){return this.cssText}},Qe=t=>new ie(typeof t=="string"?t:t+"",void 0,At),T=(t,...e)=>{const r=t.length===1?t[0]:e.reduce((o,i,s)=>o+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[s+1],t[0]);return new ie(r,t,At)},tr=(t,e)=>{wt?t.adoptedStyleSheets=e.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):e.forEach(r=>{const o=document.createElement("style"),i=ut.litNonce;i!==void 0&&o.setAttribute("nonce",i),o.textContent=r.cssText,t.appendChild(o)})},se=wt?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let r="";for(const o of e.cssRules)r+=o.cssText;return Qe(r)})(t):t,xt,dt=window,ne=dt.trustedTypes,er=ne?ne.emptyScript:"",le=dt.reactiveElementPolyfillSupport,Z={toAttribute(t,e){switch(e){case Boolean:t=t?er:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let r=t;switch(e){case Boolean:r=t!==null;break;case Number:r=t===null?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch(o){r=null}}return r}},ae=(t,e)=>e!==t&&(e==e||t==t),Et={attribute:!0,type:String,converter:Z,reflect:!1,hasChanged:ae},O=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;this.finalize(),((e=this.h)!==null&&e!==void 0?e:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach((e,r)=>{const o=this._$Ep(r,e);o!==void 0&&(this._$Ev.set(o,r),t.push(o))}),t}static createProperty(t,e=Et){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const r=typeof t=="symbol"?Symbol():"__"+t,o=this.getPropertyDescriptor(t,r,e);o!==void 0&&Object.defineProperty(this.prototype,t,o)}}static getPropertyDescriptor(t,e,r){return{get(){return this[e]},set(o){const i=this[t];this[e]=o,this.requestUpdate(t,i,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||Et}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),t.h!==void 0&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,r=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const o of r)this.createProperty(o,e[o])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const o of r)e.unshift(se(o))}else t!==void 0&&e.push(se(t));return e}static _$Ep(t,e){const r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(t=this.constructor.h)===null||t===void 0||t.forEach(e=>e(this))}addController(t){var e,r;((e=this._$ES)!==null&&e!==void 0?e:this._$ES=[]).push(t),this.renderRoot!==void 0&&this.isConnected&&((r=t.hostConnected)===null||r===void 0||r.call(t))}removeController(t){var e;(e=this._$ES)===null||e===void 0||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])})}createRenderRoot(){var t;const e=(t=this.shadowRoot)!==null&&t!==void 0?t:this.attachShadow(this.constructor.shadowRootOptions);return tr(e,this.constructor.elementStyles),e}connectedCallback(){var t;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(t=this._$ES)===null||t===void 0||t.forEach(e=>{var r;return(r=e.hostConnected)===null||r===void 0?void 0:r.call(e)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$ES)===null||t===void 0||t.forEach(e=>{var r;return(r=e.hostDisconnected)===null||r===void 0?void 0:r.call(e)})}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$EO(t,e,r=Et){var o;const i=this.constructor._$Ep(t,r);if(i!==void 0&&r.reflect===!0){const s=(((o=r.converter)===null||o===void 0?void 0:o.toAttribute)!==void 0?r.converter:Z).toAttribute(e,r.type);this._$El=t,s==null?this.removeAttribute(i):this.setAttribute(i,s),this._$El=null}}_$AK(t,e){var r;const o=this.constructor,i=o._$Ev.get(t);if(i!==void 0&&this._$El!==i){const s=o.getPropertyOptions(i),n=typeof s.converter=="function"?{fromAttribute:s.converter}:((r=s.converter)===null||r===void 0?void 0:r.fromAttribute)!==void 0?s.converter:Z;this._$El=i,this[i]=n.fromAttribute(e,s.type),this._$El=null}}requestUpdate(t,e,r){let o=!0;t!==void 0&&(((r=r||this.constructor.getPropertyOptions(t)).hasChanged||ae)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),r.reflect===!0&&this._$El!==t&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(t,r))):o=!1),!this.isUpdatePending&&o&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((o,i)=>this[i]=o),this._$Ei=void 0);let e=!1;const r=this._$AL;try{e=this.shouldUpdate(r),e?(this.willUpdate(r),(t=this._$ES)===null||t===void 0||t.forEach(o=>{var i;return(i=o.hostUpdate)===null||i===void 0?void 0:i.call(o)}),this.update(r)):this._$Ek()}catch(o){throw e=!1,this._$Ek(),o}e&&this._$AE(r)}willUpdate(t){}_$AE(t){var e;(e=this._$ES)===null||e===void 0||e.forEach(r=>{var o;return(o=r.hostUpdated)===null||o===void 0?void 0:o.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){this._$EC!==void 0&&(this._$EC.forEach((e,r)=>this._$EO(r,this[r],e)),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}};O.finalized=!0,O.elementProperties=new Map,O.elementStyles=[],O.shadowRootOptions={mode:"open"},le==null||le({ReactiveElement:O}),((xt=dt.reactiveElementVersions)!==null&&xt!==void 0?xt:dt.reactiveElementVersions=[]).push("1.4.2");var St,ct=window,L=ct.trustedTypes,ue=L?L.createPolicy("lit-html",{createHTML:t=>t}):void 0,E=`lit$${(Math.random()+"").slice(9)}$`,de="?"+E,rr=`<${de}>`,M=document,J=(t="")=>M.createComment(t),Y=t=>t===null||typeof t!="object"&&typeof t!="function",ce=Array.isArray,or=t=>ce(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",G=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,he=/-->/g,pe=/>/g,z=RegExp(`>|[ -\f\r](?:([^\\s"'>=/]+)([ -\f\r]*=[ -\f\r]*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),ve=/'/g,be=/"/g,fe=/^(?:script|style|textarea|title)$/i,ir=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),x=ir(1),w=Symbol.for("lit-noChange"),m=Symbol.for("lit-nothing"),me=new WeakMap,B=M.createTreeWalker(M,129,null,!1),sr=(t,e)=>{const r=t.length-1,o=[];let i,s=e===2?"":"",n=G;for(let l=0;l"?(n=i!=null?i:G,v=-1):c[1]===void 0?v=-2:(v=n.lastIndex-c[2].length,b=c[1],n=c[3]===void 0?z:c[3]==='"'?be:ve):n===be||n===ve?n=z:n===he||n===pe?n=G:(n=z,i=void 0);const $=n===z&&t[l+1].startsWith("/>")?" ":"";s+=n===G?u+rr:v>=0?(o.push(b),u.slice(0,v)+"$lit$"+u.slice(v)+E+$):u+E+(v===-2?(o.push(void 0),l):$)}const d=s+(t[r]||"")+(e===2?"":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[ue!==void 0?ue.createHTML(d):d,o]},ht=class{constructor({strings:t,_$litType$:e},r){let o;this.parts=[];let i=0,s=0;const n=t.length-1,d=this.parts,[l,u]=sr(t,e);if(this.el=ht.createElement(l,r),B.currentNode=this.el.content,e===2){const b=this.el.content,c=b.firstChild;c.remove(),b.append(...c.childNodes)}for(;(o=B.nextNode())!==null&&d.length0){o.textContent=L?L.emptyScript:"";for(let v=0;v2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=m}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,r,o){const i=this.strings;let s=!1;if(i===void 0)t=H(this,t,e,0),s=!Y(t)||t!==this._$AH&&t!==w,s&&(this._$AH=t);else{const n=t;let d,l;for(t=i[0],d=0;d{var o,i;const s=(o=r==null?void 0:r.renderBefore)!==null&&o!==void 0?o:e;let n=s._$litPart$;if(n===void 0){const d=(i=r==null?void 0:r.renderBefore)!==null&&i!==void 0?i:null;s._$litPart$=n=new pt(e.insertBefore(J(),d),d,void 0,r!=null?r:{})}return n._$AI(t),n},Ct,kt,X=class extends O{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,e;const r=super.createRenderRoot();return(t=(e=this.renderOptions).renderBefore)!==null&&t!==void 0||(e.renderBefore=r.firstChild),r}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=hr(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this._$Dt)===null||t===void 0||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._$Dt)===null||t===void 0||t.setConnected(!1)}render(){return w}};X.finalized=!0,X._$litElement$=!0,(Ct=globalThis.litElementHydrateSupport)===null||Ct===void 0||Ct.call(globalThis,{LitElement:X});var _e=globalThis.litElementPolyfillSupport;_e==null||_e({LitElement:X});((kt=globalThis.litElementVersions)!==null&&kt!==void 0?kt:globalThis.litElementVersions=[]).push("3.2.0");/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *//** - * @license - * Copyright 2019 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *//** - * @license - * Copyright 2022 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var Q=T` - :host { - box-sizing: border-box; - } - - :host *, - :host *::before, - :host *::after { - box-sizing: inherit; - } - - [hidden] { - display: none !important; - } -`,pr=T` - ${Q} - - :host { - display: inline-block; - position: relative; - width: auto; - cursor: pointer; - } - - .button { - display: inline-flex; - align-items: stretch; - justify-content: center; - width: 100%; - border-style: solid; - border-width: var(--sl-input-border-width); - font-family: var(--sl-input-font-family); - font-weight: var(--sl-font-weight-semibold); - text-decoration: none; - user-select: none; - white-space: nowrap; - vertical-align: middle; - padding: 0; - transition: var(--sl-transition-x-fast) background-color, var(--sl-transition-x-fast) color, - var(--sl-transition-x-fast) border, var(--sl-transition-x-fast) box-shadow; - cursor: inherit; - } - - .button::-moz-focus-inner { - border: 0; - } - - .button:focus { - outline: none; - } - - .button:focus-visible { - outline: var(--sl-focus-ring); - outline-offset: var(--sl-focus-ring-offset); - } - - .button--disabled { - opacity: 0.5; - cursor: not-allowed; - } - - /* When disabled, prevent mouse events from bubbling up */ - .button--disabled * { - pointer-events: none; - } - - .button__prefix, - .button__suffix { - flex: 0 0 auto; - display: flex; - align-items: center; - pointer-events: none; - } - - .button__label { - display: inline-block; - } - - .button__label::slotted(sl-icon) { - vertical-align: -2px; - } - - /* - * Standard buttons - */ - - /* Default */ - .button--standard.button--default { - background-color: var(--sl-color-neutral-0); - border-color: var(--sl-color-neutral-300); - color: var(--sl-color-neutral-700); - } - - .button--standard.button--default:hover:not(.button--disabled) { - background-color: var(--sl-color-primary-50); - border-color: var(--sl-color-primary-300); - color: var(--sl-color-primary-700); - } - - .button--standard.button--default:active:not(.button--disabled) { - background-color: var(--sl-color-primary-100); - border-color: var(--sl-color-primary-400); - color: var(--sl-color-primary-700); - } - - /* Primary */ - .button--standard.button--primary { - background-color: var(--sl-color-primary-600); - border-color: var(--sl-color-primary-600); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--primary:hover:not(.button--disabled) { - background-color: var(--sl-color-primary-500); - border-color: var(--sl-color-primary-500); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--primary:active:not(.button--disabled) { - background-color: var(--sl-color-primary-600); - border-color: var(--sl-color-primary-600); - color: var(--sl-color-neutral-0); - } - - /* Success */ - .button--standard.button--success { - background-color: var(--sl-color-success-600); - border-color: var(--sl-color-success-600); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--success:hover:not(.button--disabled) { - background-color: var(--sl-color-success-500); - border-color: var(--sl-color-success-500); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--success:active:not(.button--disabled) { - background-color: var(--sl-color-success-600); - border-color: var(--sl-color-success-600); - color: var(--sl-color-neutral-0); - } - - /* Neutral */ - .button--standard.button--neutral { - background-color: var(--sl-color-neutral-600); - border-color: var(--sl-color-neutral-600); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--neutral:hover:not(.button--disabled) { - background-color: var(--sl-color-neutral-500); - border-color: var(--sl-color-neutral-500); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--neutral:active:not(.button--disabled) { - background-color: var(--sl-color-neutral-600); - border-color: var(--sl-color-neutral-600); - color: var(--sl-color-neutral-0); - } - - /* Warning */ - .button--standard.button--warning { - background-color: var(--sl-color-warning-600); - border-color: var(--sl-color-warning-600); - color: var(--sl-color-neutral-0); - } - .button--standard.button--warning:hover:not(.button--disabled) { - background-color: var(--sl-color-warning-500); - border-color: var(--sl-color-warning-500); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--warning:active:not(.button--disabled) { - background-color: var(--sl-color-warning-600); - border-color: var(--sl-color-warning-600); - color: var(--sl-color-neutral-0); - } - - /* Danger */ - .button--standard.button--danger { - background-color: var(--sl-color-danger-600); - border-color: var(--sl-color-danger-600); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--danger:hover:not(.button--disabled) { - background-color: var(--sl-color-danger-500); - border-color: var(--sl-color-danger-500); - color: var(--sl-color-neutral-0); - } - - .button--standard.button--danger:active:not(.button--disabled) { - background-color: var(--sl-color-danger-600); - border-color: var(--sl-color-danger-600); - color: var(--sl-color-neutral-0); - } - - /* - * Outline buttons - */ - - .button--outline { - background: none; - border: solid 1px; - } - - /* Default */ - .button--outline.button--default { - border-color: var(--sl-color-neutral-300); - color: var(--sl-color-neutral-700); - } - - .button--outline.button--default:hover:not(.button--disabled), - .button--outline.button--default.button--checked:not(.button--disabled) { - border-color: var(--sl-color-primary-600); - background-color: var(--sl-color-primary-600); - color: var(--sl-color-neutral-0); - } - - .button--outline.button--default:active:not(.button--disabled) { - border-color: var(--sl-color-primary-700); - background-color: var(--sl-color-primary-700); - color: var(--sl-color-neutral-0); - } - - /* Primary */ - .button--outline.button--primary { - border-color: var(--sl-color-primary-600); - color: var(--sl-color-primary-600); - } - - .button--outline.button--primary:hover:not(.button--disabled), - .button--outline.button--primary.button--checked:not(.button--disabled) { - background-color: var(--sl-color-primary-600); - color: var(--sl-color-neutral-0); - } - - .button--outline.button--primary:active:not(.button--disabled) { - border-color: var(--sl-color-primary-700); - background-color: var(--sl-color-primary-700); - color: var(--sl-color-neutral-0); - } - - /* Success */ - .button--outline.button--success { - border-color: var(--sl-color-success-600); - color: var(--sl-color-success-600); - } - - .button--outline.button--success:hover:not(.button--disabled), - .button--outline.button--success.button--checked:not(.button--disabled) { - background-color: var(--sl-color-success-600); - color: var(--sl-color-neutral-0); - } - - .button--outline.button--success:active:not(.button--disabled) { - border-color: var(--sl-color-success-700); - background-color: var(--sl-color-success-700); - color: var(--sl-color-neutral-0); - } - - /* Neutral */ - .button--outline.button--neutral { - border-color: var(--sl-color-neutral-600); - color: var(--sl-color-neutral-600); - } - - .button--outline.button--neutral:hover:not(.button--disabled), - .button--outline.button--neutral.button--checked:not(.button--disabled) { - background-color: var(--sl-color-neutral-600); - color: var(--sl-color-neutral-0); - } - - .button--outline.button--neutral:active:not(.button--disabled) { - border-color: var(--sl-color-neutral-700); - background-color: var(--sl-color-neutral-700); - color: var(--sl-color-neutral-0); - } - - /* Warning */ - .button--outline.button--warning { - border-color: var(--sl-color-warning-600); - color: var(--sl-color-warning-600); - } - - .button--outline.button--warning:hover:not(.button--disabled), - .button--outline.button--warning.button--checked:not(.button--disabled) { - background-color: var(--sl-color-warning-600); - color: var(--sl-color-neutral-0); - } - - .button--outline.button--warning:active:not(.button--disabled) { - border-color: var(--sl-color-warning-700); - background-color: var(--sl-color-warning-700); - color: var(--sl-color-neutral-0); - } - - /* Danger */ - .button--outline.button--danger { - border-color: var(--sl-color-danger-600); - color: var(--sl-color-danger-600); - } - - .button--outline.button--danger:hover:not(.button--disabled), - .button--outline.button--danger.button--checked:not(.button--disabled) { - background-color: var(--sl-color-danger-600); - color: var(--sl-color-neutral-0); - } - - .button--outline.button--danger:active:not(.button--disabled) { - border-color: var(--sl-color-danger-700); - background-color: var(--sl-color-danger-700); - color: var(--sl-color-neutral-0); - } - - @media (forced-colors: active) { - .button.button--outline.button--checked:not(.button--disabled) { - outline: solid 2px transparent; - } - } - - /* - * Text buttons - */ - - .button--text { - background-color: transparent; - border-color: transparent; - color: var(--sl-color-primary-600); - } - - .button--text:hover:not(.button--disabled) { - background-color: transparent; - border-color: transparent; - color: var(--sl-color-primary-500); - } - - .button--text:focus-visible:not(.button--disabled) { - background-color: transparent; - border-color: transparent; - color: var(--sl-color-primary-500); - } - - .button--text:active:not(.button--disabled) { - background-color: transparent; - border-color: transparent; - color: var(--sl-color-primary-700); - } - - /* - * Size modifiers - */ - - .button--small { - font-size: var(--sl-button-font-size-small); - height: var(--sl-input-height-small); - line-height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2); - border-radius: var(--sl-input-border-radius-small); - } - - .button--medium { - font-size: var(--sl-button-font-size-medium); - height: var(--sl-input-height-medium); - line-height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2); - border-radius: var(--sl-input-border-radius-medium); - } - - .button--large { - font-size: var(--sl-button-font-size-large); - height: var(--sl-input-height-large); - line-height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2); - border-radius: var(--sl-input-border-radius-large); - } - - /* - * Pill modifier - */ - - .button--pill.button--small { - border-radius: var(--sl-input-height-small); - } - - .button--pill.button--medium { - border-radius: var(--sl-input-height-medium); - } - - .button--pill.button--large { - border-radius: var(--sl-input-height-large); - } - - /* - * Circle modifier - */ - - .button--circle { - padding-left: 0; - padding-right: 0; - } - - .button--circle.button--small { - width: var(--sl-input-height-small); - border-radius: 50%; - } - - .button--circle.button--medium { - width: var(--sl-input-height-medium); - border-radius: 50%; - } - - .button--circle.button--large { - width: var(--sl-input-height-large); - border-radius: 50%; - } - - .button--circle .button__prefix, - .button--circle .button__suffix, - .button--circle .button__caret { - display: none; - } - - /* - * Caret modifier - */ - - .button--caret .button__suffix { - display: none; - } - - .button--caret .button__caret { - height: auto; - } - - /* - * Loading modifier - */ - - .button--loading { - position: relative; - cursor: wait; - } - - .button--loading .button__prefix, - .button--loading .button__label, - .button--loading .button__suffix, - .button--loading .button__caret { - visibility: hidden; - } - - .button--loading sl-spinner { - --indicator-color: currentColor; - position: absolute; - font-size: 1em; - height: 1em; - width: 1em; - top: calc(50% - 0.5em); - left: calc(50% - 0.5em); - } - - /* - * Badges - */ - - .button ::slotted(sl-badge) { - position: absolute; - top: 0; - right: 0; - translate: 50% -50%; - pointer-events: none; - } - - .button--rtl ::slotted(sl-badge) { - right: auto; - left: 0; - translate: -50% -50%; - } - - /* - * Button spacing - */ - - .button--has-label.button--small .button__label { - padding: 0 var(--sl-spacing-small); - } - - .button--has-label.button--medium .button__label { - padding: 0 var(--sl-spacing-medium); - } - - .button--has-label.button--large .button__label { - padding: 0 var(--sl-spacing-large); - } - - .button--has-prefix.button--small { - padding-inline-start: var(--sl-spacing-x-small); - } - - .button--has-prefix.button--small .button__label { - padding-inline-start: var(--sl-spacing-x-small); - } - - .button--has-prefix.button--medium { - padding-inline-start: var(--sl-spacing-small); - } - - .button--has-prefix.button--medium .button__label { - padding-inline-start: var(--sl-spacing-small); - } - - .button--has-prefix.button--large { - padding-inline-start: var(--sl-spacing-small); - } - - .button--has-prefix.button--large .button__label { - padding-inline-start: var(--sl-spacing-small); - } - - .button--has-suffix.button--small, - .button--caret.button--small { - padding-inline-end: var(--sl-spacing-x-small); - } - - .button--has-suffix.button--small .button__label, - .button--caret.button--small .button__label { - padding-inline-end: var(--sl-spacing-x-small); - } - - .button--has-suffix.button--medium, - .button--caret.button--medium { - padding-inline-end: var(--sl-spacing-small); - } - - .button--has-suffix.button--medium .button__label, - .button--caret.button--medium .button__label { - padding-inline-end: var(--sl-spacing-small); - } - - .button--has-suffix.button--large, - .button--caret.button--large { - padding-inline-end: var(--sl-spacing-small); - } - - .button--has-suffix.button--large .button__label, - .button--caret.button--large .button__label { - padding-inline-end: var(--sl-spacing-small); - } - - /* - * Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.). - * This means buttons aren't always direct descendants of the button group, thus we can't target them with the - * ::slotted selector. To work around this, the button group component does some magic to add these special classes to - * buttons and we style them here instead. - */ - - :host(.sl-button-group__button--first:not(.sl-button-group__button--last)) .button { - border-start-end-radius: 0; - border-end-end-radius: 0; - } - - :host(.sl-button-group__button--inner) .button { - border-radius: 0; - } - - :host(.sl-button-group__button--last:not(.sl-button-group__button--first)) .button { - border-start-start-radius: 0; - border-end-start-radius: 0; - } - - /* All except the first */ - :host(.sl-button-group__button:not(.sl-button-group__button--first)) { - margin-inline-start: calc(-1 * var(--sl-input-border-width)); - } - - /* Add a visual separator between solid buttons */ - :host(.sl-button-group__button:not(.sl-button-group__button--first, .sl-button-group__button--radio, [variant='default']):not(:hover)) - .button:after { - content: ''; - position: absolute; - top: 0; - inset-inline-start: 0; - bottom: 0; - border-left: solid 1px rgb(128 128 128 / 33%); - mix-blend-mode: multiply; - } - - /* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */ - :host(.sl-button-group__button--hover) { - z-index: 1; - } - - /* Focus and checked are always on top */ - :host(.sl-button-group__button--focus), - :host(.sl-button-group__button[checked]) { - z-index: 2; - } -`,ye=Symbol.for(""),vr=t=>{if((t==null?void 0:t.r)===ye)return t==null?void 0:t._$litStatic$},$e=(t,...e)=>({_$litStatic$:e.reduce((r,o,i)=>r+(s=>{if(s._$litStatic$!==void 0)return s._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${s}. Use 'unsafeStatic' to pass non-literal values, but - take care to ensure page security.`)})(o)+t[i+1],t[0]),r:ye}),we=new Map,br=t=>(e,...r)=>{const o=r.length;let i,s;const n=[],d=[];let l,u=0,b=!1;for(;u{const r=e.$code.toLowerCase();R.has(r)?R.set(r,Object.assign(Object.assign({},R.get(r)),e)):R.set(r,e),tt||(tt=e)}),Ee()}function Ee(){Ae=document.documentElement.dir||"ltr",xe=document.documentElement.lang||navigator.language,[...zt.keys()].map(t=>{typeof t.requestUpdate=="function"&&t.requestUpdate()})}var gr=class{constructor(t){this.host=t,this.host.addController(this)}hostConnected(){zt.add(this.host)}hostDisconnected(){zt.delete(this.host)}dir(){return`${this.host.dir||Ae}`.toLowerCase()}lang(){return`${this.host.lang||xe}`.toLowerCase()}term(t,...e){var r,o;const i=new Intl.Locale(this.lang()),s=i==null?void 0:i.language.toLowerCase(),n=(o=(r=i==null?void 0:i.region)===null||r===void 0?void 0:r.toLowerCase())!==null&&o!==void 0?o:"",d=R.get(`${s}-${n}`),l=R.get(s);let u;if(d&&d[t])u=d[t];else if(l&&l[t])u=l[t];else if(tt&&tt[t])u=tt[t];else return console.error(`No translation found for: ${String(t)}`),String(t);return typeof u=="function"?u(...e):u}date(t,e){return t=new Date(t),new Intl.DateTimeFormat(this.lang(),e).format(t)}number(t,e){return t=Number(t),isNaN(t)?"":new Intl.NumberFormat(this.lang(),e).format(t)}relativeTime(t,e,r){return new Intl.RelativeTimeFormat(this.lang(),r).format(t,e)}},Pt=class extends gr{},_r={$code:"en",$name:"English",$dir:"ltr",clearEntry:"Clear entry",close:"Close",copy:"Copy",numOptionsSelected:t=>t===0?"No options selected":t===1?"1 option selected":`${t} options selected`,currentValue:"Current value",hidePassword:"Hide password",loading:"Loading",progress:"Progress",remove:"Remove",resize:"Resize",scrollToEnd:"Scroll to end",scrollToStart:"Scroll to start",selectAColorFromTheScreen:"Select a color from the screen",showPassword:"Show password",toggleColorFormat:"Toggle color format"};mr(_r);var Ut=class{constructor(t,...e){this.slotNames=[],(this.host=t).addController(this),this.slotNames=e,this.handleSlotChange=this.handleSlotChange.bind(this)}hasDefaultSlot(){return[...this.host.childNodes].some(t=>{if(t.nodeType===t.TEXT_NODE&&t.textContent.trim()!=="")return!0;if(t.nodeType===t.ELEMENT_NODE){const e=t;if(e.tagName.toLowerCase()==="sl-visually-hidden")return!1;if(!e.hasAttribute("slot"))return!0}return!1})}hasNamedSlot(t){return this.host.querySelector(`:scope > [slot="${t}"]`)!==null}test(t){return t==="[default]"?this.hasDefaultSlot():this.hasNamedSlot(t)}hostConnected(){this.host.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}hostDisconnected(){this.host.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}handleSlotChange(t){const e=t.target;(this.slotNames.includes("[default]")&&!e.name||e.name&&this.slotNames.includes(e.name))&&this.host.requestUpdate()}},g=t=>t!=null?t:m;/** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var S={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Nt=t=>(...e)=>({_$litDirective$:t,values:e}),Ot=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,r){this._$Ct=t,this._$AM=e,this._$Ci=r}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var bt=Nt(class extends Ot{constructor(t){var e;if(super(t),t.type!==S.ATTRIBUTE||t.name!=="class"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(t,[e]){var r,o;if(this.nt===void 0){this.nt=new Set,t.strings!==void 0&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter(s=>s!=="")));for(const s in e)e[s]&&!((r=this.st)===null||r===void 0?void 0:r.has(s))&&this.nt.add(s);return this.render(e)}const i=t.element.classList;this.nt.forEach(s=>{s in e||(i.remove(s),this.nt.delete(s))});for(const s in e){const n=!!e[s];n===this.nt.has(s)||((o=this.st)===null||o===void 0?void 0:o.has(s))||(n?(i.add(s),this.nt.add(s)):(i.remove(s),this.nt.delete(s)))}return w}});/** - * @license - * Copyright 2018 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */function C(t,e){const r=N({waitUntilFirstUpdate:!1},e);return(o,i)=>{const{update:s}=o;if(t in o){const n=t;o.update=function(d){if(d.has(n)){const l=d.get(n),u=this[n];l!==u&&(!r.waitUntilFirstUpdate||this.hasUpdated)&&this[i](l,u)}s.call(this,d)}}}}var et=t=>e=>typeof e=="function"?((r,o)=>(customElements.define(r,o),o))(t,e):((r,o)=>{const{kind:i,elements:s}=o;return{kind:i,elements:s,finisher(n){customElements.define(r,n)}}})(t,e),yr=(t,e)=>e.kind==="method"&&e.descriptor&&!("value"in e.descriptor)?$t(N({},e),{finisher(r){r.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){typeof e.initializer=="function"&&(this[e.key]=e.initializer.call(this))},finisher(r){r.createProperty(e.key,t)}};function h(t){return(e,r)=>r!==void 0?((o,i,s)=>{i.constructor.createProperty(s,o)})(t,e,r):yr(t,e)}function rt(t){return h($t(N({},t),{state:!0}))}var $r=({finisher:t,descriptor:e})=>(r,o)=>{var i;if(o===void 0){const s=(i=r.originalKey)!==null&&i!==void 0?i:r.key,n=e!=null?{kind:"method",placement:"prototype",key:s,descriptor:e(r.key)}:$t(N({},r),{key:s});return t!=null&&(n.finisher=function(d){t(d,s)}),n}{const s=r.constructor;e!==void 0&&Object.defineProperty(r,o,e(o)),t==null||t(s,o)}};function Se(t,e){return $r({descriptor:r=>{const o={get(){var i,s;return(s=(i=this.renderRoot)===null||i===void 0?void 0:i.querySelector(t))!==null&&s!==void 0?s:null},enumerable:!0,configurable:!0};if(e){const i=typeof r=="symbol"?Symbol():"__"+r;o.get=function(){var s,n;return this[i]===void 0&&(this[i]=(n=(s=this.renderRoot)===null||s===void 0?void 0:s.querySelector(t))!==null&&n!==void 0?n:null),this[i]}}return o}})}var Lt;((Lt=window.HTMLSlotElement)===null||Lt===void 0?void 0:Lt.prototype.assignedElements)!=null;var P=class extends X{emit(t,e){const r=new CustomEvent(t,N({bubbles:!0,cancelable:!1,composed:!0,detail:{}},e));return this.dispatchEvent(r),r}};a([h()],P.prototype,"dir",2);a([h()],P.prototype,"lang",2);/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - *//** - * @license - * Copyright 2021 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var f=class extends P{constructor(){super(...arguments);this.formSubmitController=new re(this,{form:t=>{if(t.hasAttribute("form")){const e=t.getRootNode(),r=t.getAttribute("form");return e.getElementById(r)}return t.closest("form")}}),this.hasSlotController=new Ut(this,"[default]","prefix","suffix"),this.localize=new Pt(this),this.hasFocus=!1,this.invalid=!1,this.title="",this.variant="default",this.size="medium",this.caret=!1,this.disabled=!1,this.loading=!1,this.outline=!1,this.pill=!1,this.circle=!1,this.type="button",this.name="",this.value="",this.href=""}firstUpdated(){this.isButton()&&(this.invalid=!this.button.checkValidity())}handleBlur(){this.hasFocus=!1,this.emit("sl-blur")}handleFocus(){this.hasFocus=!0,this.emit("sl-focus")}handleClick(t){if(this.disabled||this.loading){t.preventDefault(),t.stopPropagation();return}this.type==="submit"&&this.formSubmitController.submit(this),this.type==="reset"&&this.formSubmitController.reset(this)}isButton(){return!this.href}isLink(){return!!this.href}handleDisabledChange(){this.isButton()&&(this.button.disabled=this.disabled,this.invalid=!this.button.checkValidity())}click(){this.button.click()}focus(t){this.button.focus(t)}blur(){this.button.blur()}checkValidity(){return this.isButton()?this.button.checkValidity():!0}reportValidity(){return this.isButton()?this.button.reportValidity():!0}setCustomValidity(t){this.isButton()&&(this.button.setCustomValidity(t),this.invalid=!this.button.checkValidity())}render(){const t=this.isLink(),e=t?$e`a`:$e`button`;return Tt` - <${e} - part="base" - class=${bt({button:!0,"button--default":this.variant==="default","button--primary":this.variant==="primary","button--success":this.variant==="success","button--neutral":this.variant==="neutral","button--warning":this.variant==="warning","button--danger":this.variant==="danger","button--text":this.variant==="text","button--small":this.size==="small","button--medium":this.size==="medium","button--large":this.size==="large","button--caret":this.caret,"button--circle":this.circle,"button--disabled":this.disabled,"button--focused":this.hasFocus,"button--loading":this.loading,"button--standard":!this.outline,"button--outline":this.outline,"button--pill":this.pill,"button--rtl":this.localize.dir()==="rtl","button--has-label":this.hasSlotController.test("[default]"),"button--has-prefix":this.hasSlotController.test("prefix"),"button--has-suffix":this.hasSlotController.test("suffix")})} - ?disabled=${g(t?void 0:this.disabled)} - type=${g(t?void 0:this.type)} - title=${this.title} - name=${g(t?void 0:this.name)} - value=${g(t?void 0:this.value)} - href=${g(t?this.href:void 0)} - target=${g(t?this.target:void 0)} - download=${g(t?this.download:void 0)} - rel=${g(t&&this.target?"noreferrer noopener":void 0)} - role=${g(t?void 0:"button")} - aria-disabled=${this.disabled?"true":"false"} - tabindex=${this.disabled?"-1":"0"} - @blur=${this.handleBlur} - @focus=${this.handleFocus} - @click=${this.handleClick} - > - - - - ${this.caret?Tt` `:""} - ${this.loading?Tt``:""} - - `}};f.styles=pr;a([Se(".button")],f.prototype,"button",2);a([rt()],f.prototype,"hasFocus",2);a([rt()],f.prototype,"invalid",2);a([h()],f.prototype,"title",2);a([h({reflect:!0})],f.prototype,"variant",2);a([h({reflect:!0})],f.prototype,"size",2);a([h({type:Boolean,reflect:!0})],f.prototype,"caret",2);a([h({type:Boolean,reflect:!0})],f.prototype,"disabled",2);a([h({type:Boolean,reflect:!0})],f.prototype,"loading",2);a([h({type:Boolean,reflect:!0})],f.prototype,"outline",2);a([h({type:Boolean,reflect:!0})],f.prototype,"pill",2);a([h({type:Boolean,reflect:!0})],f.prototype,"circle",2);a([h()],f.prototype,"type",2);a([h()],f.prototype,"name",2);a([h()],f.prototype,"value",2);a([h()],f.prototype,"href",2);a([h()],f.prototype,"target",2);a([h()],f.prototype,"download",2);a([h()],f.prototype,"form",2);a([h({attribute:"formaction"})],f.prototype,"formAction",2);a([h({attribute:"formenctype"})],f.prototype,"formEnctype",2);a([h({attribute:"formmethod"})],f.prototype,"formMethod",2);a([h({attribute:"formnovalidate",type:Boolean})],f.prototype,"formNoValidate",2);a([h({attribute:"formtarget"})],f.prototype,"formTarget",2);a([C("disabled",{waitUntilFirstUpdate:!0})],f.prototype,"handleDisabledChange",1);f=a([et("sl-button")],f);var wr=T` - ${Q} - - :host { - --track-width: 2px; - --track-color: rgb(128 128 128 / 25%); - --indicator-color: var(--sl-color-primary-600); - --speed: 2s; - - display: inline-flex; - width: 1em; - height: 1em; - } - - .spinner { - flex: 1 1 auto; - height: 100%; - width: 100%; - } - - .spinner__track, - .spinner__indicator { - fill: none; - stroke-width: var(--track-width); - r: calc(0.5em - var(--track-width) / 2); - cx: 0.5em; - cy: 0.5em; - transform-origin: 50% 50%; - } - - .spinner__track { - stroke: var(--track-color); - transform-origin: 0% 0%; - mix-blend-mode: multiply; - } - - .spinner__indicator { - stroke: var(--indicator-color); - stroke-linecap: round; - stroke-dasharray: 150% 75%; - animation: spin var(--speed) linear infinite; - } - - @keyframes spin { - 0% { - rotate: 0deg; - stroke-dasharray: 0.01em, 2.75em; - } - - 50% { - rotate: 450deg; - stroke-dasharray: 1.375em, 1.375em; - } - - 100% { - rotate: 1080deg; - stroke-dasharray: 0.01em, 2.75em; - } - } -`,Mt=class extends P{constructor(){super(...arguments);this.localize=new Pt(this)}render(){return x` - - - - - `}};Mt.styles=wr;Mt=a([et("sl-spinner")],Mt);var Bt="";function Ce(t){Bt=t}function Ar(){if(!Bt){const t=[...document.getElementsByTagName("script")],e=t.find(r=>r.hasAttribute("data-shoelace"));if(e)Ce(e.getAttribute("data-shoelace"));else{const r=t.find(i=>/shoelace(\.min)?\.js($|\?)/.test(i.src));let o="";r&&(o=r.getAttribute("src")),Ce(o.split("/").slice(0,-1).join("/"))}}return Bt.replace(/\/$/,"")}var xr={name:"default",resolver:t=>`${Ar()}/assets/icons/${t}.svg`},Er=xr,ke={caret:` - - - - `,check:` - - - - - - - - - - - `,"chevron-down":` - - - - `,"chevron-left":` - - - - `,"chevron-right":` - - - - `,eye:` - - - - - `,"eye-slash":` - - - - - - `,eyedropper:` - - - - `,"grip-vertical":` - - - - `,indeterminate:` - - - - - - - - - - `,"person-fill":` - - - - `,"play-fill":` - - - - `,"pause-fill":` - - - - `,radio:` - - - - - - - - `,"star-fill":` - - - - `,"x-lg":` - - - - `,"x-circle-fill":` - - - - `},Sr={name:"system",resolver:t=>t in ke?`data:image/svg+xml,${encodeURIComponent(ke[t])}`:""},Cr=Sr,kr=[Er,Cr],Ht=[];function Tr(t){Ht.push(t)}function zr(t){Ht=Ht.filter(e=>e!==t)}function Te(t){return kr.find(e=>e.name===t)}var Rt=new Map;function Pr(t,e="cors"){if(Rt.has(t))return Rt.get(t);const r=fetch(t,{mode:e}).then(async o=>({ok:o.ok,status:o.status,html:await o.text()}));return Rt.set(t,r),r}var Vt=new Map;async function Ur(t){if(Vt.has(t))return Vt.get(t);const e=await Pr(t),r={ok:e.ok,status:e.status,svg:null};if(e.ok){const o=document.createElement("div");o.innerHTML=e.html;const i=o.firstElementChild;r.svg=(i==null?void 0:i.tagName.toLowerCase())==="svg"?i.outerHTML:""}return Vt.set(t,r),r}var Nr=T` - ${Q} - - :host { - display: inline-block; - width: 1em; - height: 1em; - contain: strict; - box-sizing: content-box !important; - } - - svg { - display: block; - height: 100%; - width: 100%; - } -`,Dt=class extends Ot{constructor(t){if(super(t),this.it=m,t.type!==S.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===m||t==null)return this._t=void 0,this.it=t;if(t===w)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;const e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};Dt.directiveName="unsafeHTML",Dt.resultType=1;var It=class extends Dt{};It.directiveName="unsafeSVG",It.resultType=2;var Or=Nt(It),Ft,A=class extends P{constructor(){super(...arguments);this.svg="",this.label="",this.library="default"}connectedCallback(){super.connectedCallback(),Tr(this)}firstUpdated(){this.setIcon()}disconnectedCallback(){super.disconnectedCallback(),zr(this)}getUrl(){const t=Te(this.library);return this.name&&t?t.resolver(this.name):this.src}handleLabelChange(){typeof this.label=="string"&&this.label.length>0?(this.setAttribute("role","img"),this.setAttribute("aria-label",this.label),this.removeAttribute("aria-hidden")):(this.removeAttribute("role"),this.removeAttribute("aria-label"),this.setAttribute("aria-hidden","true"))}async setIcon(){var t;const e=Te(this.library),r=this.getUrl();if(Ft||(Ft=new DOMParser),r)try{const o=await Ur(r);if(r!==this.getUrl())return;if(o.ok){const s=Ft.parseFromString(o.svg,"text/html").body.querySelector("svg");s!==null?((t=e==null?void 0:e.mutator)==null||t.call(e,s),this.svg=s.outerHTML,this.emit("sl-load")):(this.svg="",this.emit("sl-error"))}else this.svg="",this.emit("sl-error")}catch(o){this.emit("sl-error")}else this.svg.length>0&&(this.svg="")}render(){return x` ${Or(this.svg)} `}};A.styles=Nr;a([rt()],A.prototype,"svg",2);a([h({reflect:!0})],A.prototype,"name",2);a([h()],A.prototype,"src",2);a([h()],A.prototype,"label",2);a([h({reflect:!0})],A.prototype,"library",2);a([C("label")],A.prototype,"handleLabelChange",1);a([C("name"),C("src"),C("library")],A.prototype,"setIcon",1);A=a([et("sl-icon")],A);/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var Lr=T` - .form-control .form-control__label { - display: none; - } - - .form-control .form-control__help-text { - display: none; - } - - /* Label */ - .form-control--has-label .form-control__label { - display: inline-block; - color: var(--sl-input-label-color); - margin-bottom: var(--sl-spacing-3x-small); - } - - .form-control--has-label.form-control--small .form-control__label { - font-size: var(--sl-input-label-font-size-small); - } - - .form-control--has-label.form-control--medium .form-control__label { - font-size: var(--sl-input-label-font-size-medium); - } - - .form-control--has-label.form-control--large .form-control_label { - font-size: var(--sl-input-label-font-size-large); - } - - :host([required]) .form-control--has-label .form-control__label::after { - content: var(--sl-input-required-content); - margin-inline-start: var(--sl-input-required-content-offset); - color: var(--sl-input-required-content-color); - } - - /* Help text */ - .form-control--has-help-text .form-control__help-text { - display: block; - color: var(--sl-input-help-text-color); - margin-top: var(--sl-spacing-3x-small); - } - - .form-control--has-help-text.form-control--small .form-control__help-text { - font-size: var(--sl-input-help-text-font-size-small); - } - - .form-control--has-help-text.form-control--medium .form-control__help-text { - font-size: var(--sl-input-help-text-font-size-medium); - } - - .form-control--has-help-text.form-control--large .form-control__help-text { - font-size: var(--sl-input-help-text-font-size-large); - } - - .form-control--has-help-text.form-control--radio-group .form-control__help-text { - margin-top: var(--sl-spacing-2x-small); - } -`,Mr=T` - ${Q} - ${Lr} - - :host { - display: block; - } - - .input { - flex: 1 1 auto; - display: inline-flex; - align-items: stretch; - justify-content: start; - position: relative; - width: 100%; - font-family: var(--sl-input-font-family); - font-weight: var(--sl-input-font-weight); - letter-spacing: var(--sl-input-letter-spacing); - vertical-align: middle; - overflow: hidden; - cursor: text; - transition: var(--sl-transition-fast) color, var(--sl-transition-fast) border, var(--sl-transition-fast) box-shadow, - var(--sl-transition-fast) background-color; - } - - /* Standard inputs */ - .input--standard { - background-color: var(--sl-input-background-color); - border: solid var(--sl-input-border-width) var(--sl-input-border-color); - } - - .input--standard:hover:not(.input--disabled) { - background-color: var(--sl-input-background-color-hover); - border-color: var(--sl-input-border-color-hover); - } - - .input--standard.input--focused:not(.input--disabled) { - background-color: var(--sl-input-background-color-focus); - border-color: var(--sl-input-border-color-focus); - box-shadow: 0 0 0 var(--sl-focus-ring-width) var(--sl-input-focus-ring-color); - } - - .input--standard.input--focused:not(.input--disabled) .input__control { - color: var(--sl-input-color-focus); - } - - .input--standard.input--disabled { - background-color: var(--sl-input-background-color-disabled); - border-color: var(--sl-input-border-color-disabled); - opacity: 0.5; - cursor: not-allowed; - } - - .input--standard.input--disabled .input__control { - color: var(--sl-input-color-disabled); - } - - .input--standard.input--disabled .input__control::placeholder { - color: var(--sl-input-placeholder-color-disabled); - } - - /* Filled inputs */ - .input--filled { - border: none; - background-color: var(--sl-input-filled-background-color); - color: var(--sl-input-color); - } - - .input--filled:hover:not(.input--disabled) { - background-color: var(--sl-input-filled-background-color-hover); - } - - .input--filled.input--focused:not(.input--disabled) { - background-color: var(--sl-input-filled-background-color-focus); - outline: var(--sl-focus-ring); - outline-offset: var(--sl-focus-ring-offset); - } - - .input--filled.input--disabled { - background-color: var(--sl-input-filled-background-color-disabled); - opacity: 0.5; - cursor: not-allowed; - } - - .input__control { - flex: 1 1 auto; - font-family: inherit; - font-size: inherit; - font-weight: inherit; - min-width: 0; - height: 100%; - color: var(--sl-input-color); - border: none; - background: none; - box-shadow: none; - padding: 0; - margin: 0; - cursor: inherit; - -webkit-appearance: none; - } - - .input__control::-webkit-search-decoration, - .input__control::-webkit-search-cancel-button, - .input__control::-webkit-search-results-button, - .input__control::-webkit-search-results-decoration { - -webkit-appearance: none; - } - - .input__control:-webkit-autofill, - .input__control:-webkit-autofill:hover, - .input__control:-webkit-autofill:focus, - .input__control:-webkit-autofill:active { - box-shadow: 0 0 0 var(--sl-input-height-large) var(--sl-input-background-color-hover) inset !important; - -webkit-text-fill-color: var(--sl-color-primary-500); - caret-color: var(--sl-input-color); - } - - .input--filled .input__control:-webkit-autofill, - .input--filled .input__control:-webkit-autofill:hover, - .input--filled .input__control:-webkit-autofill:focus, - .input--filled .input__control:-webkit-autofill:active { - box-shadow: 0 0 0 var(--sl-input-height-large) var(--sl-input-filled-background-color) inset !important; - } - - .input__control::placeholder { - color: var(--sl-input-placeholder-color); - user-select: none; - } - - .input:hover:not(.input--disabled) .input__control { - color: var(--sl-input-color-hover); - } - - .input__control:focus { - outline: none; - } - - .input__prefix, - .input__suffix { - display: inline-flex; - flex: 0 0 auto; - align-items: center; - cursor: default; - } - - .input__prefix::slotted(sl-icon), - .input__suffix::slotted(sl-icon) { - color: var(--sl-input-icon-color); - } - - /* - * Size modifiers - */ - - .input--small { - border-radius: var(--sl-input-border-radius-small); - font-size: var(--sl-input-font-size-small); - height: var(--sl-input-height-small); - } - - .input--small .input__control { - height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2); - padding: 0 var(--sl-input-spacing-small); - } - - .input--small .input__clear, - .input--small .input__password-toggle { - width: calc(1em + var(--sl-input-spacing-small) * 2); - } - - .input--small .input__prefix::slotted(*) { - margin-inline-start: var(--sl-input-spacing-small); - } - - .input--small .input__suffix::slotted(*) { - margin-inline-end: var(--sl-input-spacing-small); - } - - .input--medium { - border-radius: var(--sl-input-border-radius-medium); - font-size: var(--sl-input-font-size-medium); - height: var(--sl-input-height-medium); - } - - .input--medium .input__control { - height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2); - padding: 0 var(--sl-input-spacing-medium); - } - - .input--medium .input__clear, - .input--medium .input__password-toggle { - width: calc(1em + var(--sl-input-spacing-medium) * 2); - } - - .input--medium .input__prefix::slotted(*) { - margin-inline-start: var(--sl-input-spacing-medium); - } - - .input--medium .input__suffix::slotted(*) { - margin-inline-end: var(--sl-input-spacing-medium); - } - - .input--large { - border-radius: var(--sl-input-border-radius-large); - font-size: var(--sl-input-font-size-large); - height: var(--sl-input-height-large); - } - - .input--large .input__control { - height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2); - padding: 0 var(--sl-input-spacing-large); - } - - .input--large .input__clear, - .input--large .input__password-toggle { - width: calc(1em + var(--sl-input-spacing-large) * 2); - } - - .input--large .input__prefix::slotted(*) { - margin-inline-start: var(--sl-input-spacing-large); - } - - .input--large .input__suffix::slotted(*) { - margin-inline-end: var(--sl-input-spacing-large); - } - - /* - * Pill modifier - */ - - .input--pill.input--small { - border-radius: var(--sl-input-height-small); - } - - .input--pill.input--medium { - border-radius: var(--sl-input-height-medium); - } - - .input--pill.input--large { - border-radius: var(--sl-input-height-large); - } - - /* - * Clearable + Password Toggle - */ - - .input__clear, - .input__password-toggle { - display: inline-flex; - align-items: center; - justify-content: center; - font-size: inherit; - color: var(--sl-input-icon-color); - border: none; - background: none; - padding: 0; - transition: var(--sl-transition-fast) color; - cursor: pointer; - } - - .input__clear:hover, - .input__password-toggle:hover { - color: var(--sl-input-icon-color-hover); - } - - .input__clear:focus, - .input__password-toggle:focus { - outline: none; - } - - .input--empty .input__clear { - visibility: hidden; - } - - /* Don't show the browser's password toggle in Edge */ - ::-ms-reveal { - display: none; - } - - /* Hide Firefox's clear button on date and time inputs */ - .input--is-firefox input[type='date'], - .input--is-firefox input[type='time'] { - clip-path: inset(0 2em 0 0); - } - - /* Hide the built-in number spinner */ - .input--no-spin-buttons input[type='number']::-webkit-outer-spin-button, - .input--no-spin-buttons input[type='number']::-webkit-inner-spin-button { - -webkit-appearance: none; - display: none; - } - - .input--no-spin-buttons input[type='number'] { - -moz-appearance: textfield; - } -`,Br=t=>t.strings===void 0,Hr={},Rr=(t,e=Hr)=>t._$AH=e,Vr=Nt(class extends Ot{constructor(t){if(super(t),t.type!==S.PROPERTY&&t.type!==S.ATTRIBUTE&&t.type!==S.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!Br(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===w||e===m)return e;const r=t.element,o=t.name;if(t.type===S.PROPERTY){if(e===r[o])return w}else if(t.type===S.BOOLEAN_ATTRIBUTE){if(!!e===r.hasAttribute(o))return w}else if(t.type===S.ATTRIBUTE&&r.getAttribute(o)===e+"")return w;return Rr(t),e}});/** - * @license - * Copyright 2020 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var Dr=(t="value")=>(e,r)=>{const o=e.constructor,i=o.prototype.attributeChangedCallback;o.prototype.attributeChangedCallback=function(s,n,d){var l;const u=o.getPropertyOptions(t),b=typeof u.attribute=="string"?u.attribute:t;if(s===b){const c=u.converter||Z,_=(typeof c=="function"?c:(l=c==null?void 0:c.fromAttribute)!=null?l:Z.fromAttribute)(d,u.type);this[t]!==_&&(this[r]=_)}i.call(this,s,n,d)}},ze,Ir=(ze=navigator.userAgentData)==null?void 0:ze.brands.some(t=>t.brand.includes("Chromium")),Fr=Ir?!1:navigator.userAgent.includes("Firefox"),p=class extends P{constructor(){super(...arguments);this.formSubmitController=new re(this),this.hasSlotController=new Ut(this,"help-text","label"),this.localize=new Pt(this),this.hasFocus=!1,this.invalid=!1,this.title="",this.type="text",this.name="",this.value="",this.defaultValue="",this.size="medium",this.filled=!1,this.pill=!1,this.label="",this.helpText="",this.clearable=!1,this.disabled=!1,this.placeholder="",this.readonly=!1,this.passwordToggle=!1,this.passwordVisible=!1,this.noSpinButtons=!1,this.required=!1,this.spellcheck=!0}get valueAsDate(){var t,e;return(e=(t=this.input)==null?void 0:t.valueAsDate)!=null?e:null}set valueAsDate(t){const e=document.createElement("input");e.type="date",e.valueAsDate=t,this.value=e.value}get valueAsNumber(){var t,e;return(e=(t=this.input)==null?void 0:t.valueAsNumber)!=null?e:parseFloat(this.value)}set valueAsNumber(t){const e=document.createElement("input");e.type="number",e.valueAsNumber=t,this.value=e.value}firstUpdated(){this.invalid=!this.checkValidity()}handleBlur(){this.hasFocus=!1,this.emit("sl-blur")}handleChange(){this.value=this.input.value,this.emit("sl-change")}handleClearClick(t){this.value="",this.emit("sl-clear"),this.emit("sl-input"),this.emit("sl-change"),this.input.focus(),t.stopPropagation()}handleFocus(){this.hasFocus=!0,this.emit("sl-focus")}handleInput(){this.value=this.input.value,this.invalid=!this.checkValidity(),this.emit("sl-input")}handleInvalid(){this.invalid=!0}handleKeyDown(t){const e=t.metaKey||t.ctrlKey||t.shiftKey||t.altKey;t.key==="Enter"&&!e&&setTimeout(()=>{!t.defaultPrevented&&!t.isComposing&&this.formSubmitController.submit()})}handlePasswordToggle(){this.passwordVisible=!this.passwordVisible}handleDisabledChange(){this.input.disabled=this.disabled,this.invalid=!this.checkValidity()}handleStepChange(){this.input.step=String(this.step),this.invalid=!this.checkValidity()}async handleValueChange(){await this.updateComplete,this.invalid=!this.checkValidity()}focus(t){this.input.focus(t)}blur(){this.input.blur()}select(){this.input.select()}setSelectionRange(t,e,r="none"){this.input.setSelectionRange(t,e,r)}setRangeText(t,e,r,o){this.input.setRangeText(t,e,r,o),this.value!==this.input.value&&(this.value=this.input.value)}showPicker(){"showPicker"in HTMLInputElement.prototype&&this.input.showPicker()}stepUp(){this.input.stepUp(),this.value!==this.input.value&&(this.value=this.input.value)}stepDown(){this.input.stepDown(),this.value!==this.input.value&&(this.value=this.input.value)}checkValidity(){return this.input.checkValidity()}reportValidity(){return this.input.reportValidity()}setCustomValidity(t){this.input.setCustomValidity(t),this.invalid=!this.checkValidity()}render(){const t=this.hasSlotController.test("label"),e=this.hasSlotController.test("help-text"),r=this.label?!0:!!t,o=this.helpText?!0:!!e,i=this.clearable&&!this.disabled&&!this.readonly&&(typeof this.value=="number"||this.value.length>0);return x` -
- - -
-
- - - - ${i?x` - - `:""} - ${this.passwordToggle&&!this.disabled?x` - - `:""} - - -
-
- - - ${this.helpText} - -
- - `}};p.styles=Mr;a([Se(".input__control")],p.prototype,"input",2);a([rt()],p.prototype,"hasFocus",2);a([rt()],p.prototype,"invalid",2);a([h()],p.prototype,"title",2);a([h({reflect:!0})],p.prototype,"type",2);a([h()],p.prototype,"name",2);a([h()],p.prototype,"value",2);a([Dr()],p.prototype,"defaultValue",2);a([h({reflect:!0})],p.prototype,"size",2);a([h({type:Boolean,reflect:!0})],p.prototype,"filled",2);a([h({type:Boolean,reflect:!0})],p.prototype,"pill",2);a([h()],p.prototype,"label",2);a([h({attribute:"help-text"})],p.prototype,"helpText",2);a([h({type:Boolean})],p.prototype,"clearable",2);a([h({type:Boolean,reflect:!0})],p.prototype,"disabled",2);a([h()],p.prototype,"placeholder",2);a([h({type:Boolean,reflect:!0})],p.prototype,"readonly",2);a([h({attribute:"password-toggle",type:Boolean})],p.prototype,"passwordToggle",2);a([h({attribute:"password-visible",type:Boolean})],p.prototype,"passwordVisible",2);a([h({attribute:"no-spin-buttons",type:Boolean})],p.prototype,"noSpinButtons",2);a([h({type:Boolean,reflect:!0})],p.prototype,"required",2);a([h()],p.prototype,"pattern",2);a([h({type:Number})],p.prototype,"minlength",2);a([h({type:Number})],p.prototype,"maxlength",2);a([h({type:Number})],p.prototype,"min",2);a([h({type:Number})],p.prototype,"max",2);a([h()],p.prototype,"step",2);a([h()],p.prototype,"autocapitalize",2);a([h()],p.prototype,"autocorrect",2);a([h()],p.prototype,"autocomplete",2);a([h({type:Boolean})],p.prototype,"autofocus",2);a([h()],p.prototype,"enterkeyhint",2);a([h({type:Boolean,converter:{fromAttribute:t=>!(!t||t==="false"),toAttribute:t=>t?"true":"false"}})],p.prototype,"spellcheck",2);a([h()],p.prototype,"inputmode",2);a([C("disabled",{waitUntilFirstUpdate:!0})],p.prototype,"handleDisabledChange",1);a([C("step",{waitUntilFirstUpdate:!0})],p.prototype,"handleStepChange",1);a([C("value",{waitUntilFirstUpdate:!0})],p.prototype,"handleValueChange",1);p=a([et("sl-input")],p);var jr=T` - ${Q} - - :host { - --border-color: var(--sl-color-neutral-200); - --border-radius: var(--sl-border-radius-medium); - --border-width: 1px; - --padding: var(--sl-spacing-large); - - display: inline-block; - } - - .card { - display: flex; - flex-direction: column; - background-color: var(--sl-panel-background-color); - box-shadow: var(--sl-shadow-x-small); - border: solid var(--border-width) var(--border-color); - border-radius: var(--border-radius); - } - - .card__image { - display: flex; - border-top-left-radius: var(--border-radius); - border-top-right-radius: var(--border-radius); - margin: calc(-1 * var(--border-width)); - overflow: hidden; - } - - .card__image::slotted(img) { - display: block; - width: 100%; - } - - .card:not(.card--has-image) .card__image { - display: none; - } - - .card__header { - display: block; - border-bottom: solid var(--border-width) var(--border-color); - padding: calc(var(--padding) / 2) var(--padding); - } - - .card:not(.card--has-header) .card__header { - display: none; - } - - .card:not(.card--has-image) .card__header { - border-top-left-radius: var(--border-radius); - border-top-right-radius: var(--border-radius); - } - - .card__body { - display: block; - padding: var(--padding); - } - - .card--has-footer .card__footer { - display: block; - border-top: solid var(--border-width) var(--border-color); - padding: var(--padding); - } - - .card:not(.card--has-footer) .card__footer { - display: none; - } -`,jt=class extends P{constructor(){super(...arguments);this.hasSlotController=new Ut(this,"footer","header","image")}render(){return x` -
- - - - -
- `}};jt.styles=jr;jt=a([et("sl-card")],jt);/** - * @license - * Copyright 2019 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */const ft=window,qt=ft.ShadowRoot&&(ft.ShadyCSS===void 0||ft.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Pe=Symbol(),Ue=new WeakMap;class qr{constructor(e,r,o){if(this._$cssResult$=!0,o!==Pe)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=r}get styleSheet(){let e=this.o;const r=this.t;if(qt&&e===void 0){const o=r!==void 0&&r.length===1;o&&(e=Ue.get(r)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&Ue.set(r,e))}return e}toString(){return this.cssText}}const Wr=t=>new qr(typeof t=="string"?t:t+"",void 0,Pe),Kr=(t,e)=>{qt?t.adoptedStyleSheets=e.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet):e.forEach(r=>{const o=document.createElement("style"),i=ft.litNonce;i!==void 0&&o.setAttribute("nonce",i),o.textContent=r.cssText,t.appendChild(o)})},Ne=qt?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let r="";for(const o of e.cssRules)r+=o.cssText;return Wr(r)})(t):t;/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var Wt;const mt=window,Oe=mt.trustedTypes,Zr=Oe?Oe.emptyScript:"",Le=mt.reactiveElementPolyfillSupport,Kt={toAttribute(t,e){switch(e){case Boolean:t=t?Zr:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let r=t;switch(e){case Boolean:r=t!==null;break;case Number:r=t===null?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch(o){r=null}}return r}},Me=(t,e)=>e!==t&&(e==e||t==t),Zt={attribute:!0,type:String,converter:Kt,reflect:!1,hasChanged:Me};class V extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(e){var r;this.finalize(),((r=this.h)!==null&&r!==void 0?r:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach((r,o)=>{const i=this._$Ep(o,r);i!==void 0&&(this._$Ev.set(i,o),e.push(i))}),e}static createProperty(e,r=Zt){if(r.state&&(r.attribute=!1),this.finalize(),this.elementProperties.set(e,r),!r.noAccessor&&!this.prototype.hasOwnProperty(e)){const o=typeof e=="symbol"?Symbol():"__"+e,i=this.getPropertyDescriptor(e,o,r);i!==void 0&&Object.defineProperty(this.prototype,e,i)}}static getPropertyDescriptor(e,r,o){return{get(){return this[r]},set(i){const s=this[e];this[r]=i,this.requestUpdate(e,s,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||Zt}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),e.h!==void 0&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const r=this.properties,o=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(const i of o)this.createProperty(i,r[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const r=[];if(Array.isArray(e)){const o=new Set(e.flat(1/0).reverse());for(const i of o)r.unshift(Ne(i))}else e!==void 0&&r.push(Ne(e));return r}static _$Ep(e,r){const o=r.attribute;return o===!1?void 0:typeof o=="string"?o:typeof e=="string"?e.toLowerCase():void 0}u(){var e;this._$E_=new Promise(r=>this.enableUpdating=r),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(e=this.constructor.h)===null||e===void 0||e.forEach(r=>r(this))}addController(e){var r,o;((r=this._$ES)!==null&&r!==void 0?r:this._$ES=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((o=e.hostConnected)===null||o===void 0||o.call(e))}removeController(e){var r;(r=this._$ES)===null||r===void 0||r.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((e,r)=>{this.hasOwnProperty(r)&&(this._$Ei.set(r,this[r]),delete this[r])})}createRenderRoot(){var e;const r=(e=this.shadowRoot)!==null&&e!==void 0?e:this.attachShadow(this.constructor.shadowRootOptions);return Kr(r,this.constructor.elementStyles),r}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$ES)===null||e===void 0||e.forEach(r=>{var o;return(o=r.hostConnected)===null||o===void 0?void 0:o.call(r)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$ES)===null||e===void 0||e.forEach(r=>{var o;return(o=r.hostDisconnected)===null||o===void 0?void 0:o.call(r)})}attributeChangedCallback(e,r,o){this._$AK(e,o)}_$EO(e,r,o=Zt){var i;const s=this.constructor._$Ep(e,o);if(s!==void 0&&o.reflect===!0){const n=(((i=o.converter)===null||i===void 0?void 0:i.toAttribute)!==void 0?o.converter:Kt).toAttribute(r,o.type);this._$El=e,n==null?this.removeAttribute(s):this.setAttribute(s,n),this._$El=null}}_$AK(e,r){var o;const i=this.constructor,s=i._$Ev.get(e);if(s!==void 0&&this._$El!==s){const n=i.getPropertyOptions(s),d=typeof n.converter=="function"?{fromAttribute:n.converter}:((o=n.converter)===null||o===void 0?void 0:o.fromAttribute)!==void 0?n.converter:Kt;this._$El=s,this[s]=d.fromAttribute(r,n.type),this._$El=null}}requestUpdate(e,r,o){let i=!0;e!==void 0&&(((o=o||this.constructor.getPropertyOptions(e)).hasChanged||Me)(this[e],r)?(this._$AL.has(e)||this._$AL.set(e,r),o.reflect===!0&&this._$El!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,o))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(r){Promise.reject(r)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((i,s)=>this[s]=i),this._$Ei=void 0);let r=!1;const o=this._$AL;try{r=this.shouldUpdate(o),r?(this.willUpdate(o),(e=this._$ES)===null||e===void 0||e.forEach(i=>{var s;return(s=i.hostUpdate)===null||s===void 0?void 0:s.call(i)}),this.update(o)):this._$Ek()}catch(i){throw r=!1,this._$Ek(),i}r&&this._$AE(o)}willUpdate(e){}_$AE(e){var r;(r=this._$ES)===null||r===void 0||r.forEach(o=>{var i;return(i=o.hostUpdated)===null||i===void 0?void 0:i.call(o)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((r,o)=>this._$EO(o,this[o],r)),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}V.finalized=!0,V.elementProperties=new Map,V.elementStyles=[],V.shadowRootOptions={mode:"open"},Le==null||Le({ReactiveElement:V}),((Wt=mt.reactiveElementVersions)!==null&&Wt!==void 0?Wt:mt.reactiveElementVersions=[]).push("1.6.1");/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var Jt;const gt=window,D=gt.trustedTypes,Be=D?D.createPolicy("lit-html",{createHTML:t=>t}):void 0,k=`lit$${(Math.random()+"").slice(9)}$`,He="?"+k,Jr=`<${He}>`,I=document,ot=(t="")=>I.createComment(t),it=t=>t===null||typeof t!="object"&&typeof t!="function",Re=Array.isArray,Yr=t=>Re(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",st=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ve=/-->/g,De=/>/g,U=RegExp(`>|[ -\f\r](?:([^\\s"'>=/]+)([ -\f\r]*=[ -\f\r]*(?:[^ -\f\r"'\`<>=]|("|')|))|$)`,"g"),Ie=/'/g,Fe=/"/g,je=/^(?:script|style|textarea|title)$/i,Gr=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),no=Gr(1),F=Symbol.for("lit-noChange"),y=Symbol.for("lit-nothing"),qe=new WeakMap,j=I.createTreeWalker(I,129,null,!1),Xr=(t,e)=>{const r=t.length-1,o=[];let i,s=e===2?"":"",n=st;for(let l=0;l"?(n=i!=null?i:st,v=-1):c[1]===void 0?v=-2:(v=n.lastIndex-c[2].length,b=c[1],n=c[3]===void 0?U:c[3]==='"'?Fe:Ie):n===Fe||n===Ie?n=U:n===Ve||n===De?n=st:(n=U,i=void 0);const $=n===U&&t[l+1].startsWith("/>")?" ":"";s+=n===st?u+Jr:v>=0?(o.push(b),u.slice(0,v)+"$lit$"+u.slice(v)+k+$):u+k+(v===-2?(o.push(void 0),l):$)}const d=s+(t[r]||"")+(e===2?"":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Be!==void 0?Be.createHTML(d):d,o]};class nt{constructor({strings:e,_$litType$:r},o){let i;this.parts=[];let s=0,n=0;const d=e.length-1,l=this.parts,[u,b]=Xr(e,r);if(this.el=nt.createElement(u,o),j.currentNode=this.el.content,r===2){const c=this.el.content,v=c.firstChild;v.remove(),c.append(...v.childNodes)}for(;(i=j.nextNode())!==null&&l.length0){i.textContent=D?D.emptyScript:"";for(let _=0;_2||o[0]!==""||o[1]!==""?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=y}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,r=this,o,i){const s=this.strings;let n=!1;if(s===void 0)e=q(this,e,r,0),n=!it(e)||e!==this._$AH&&e!==F,n&&(this._$AH=e);else{const d=e;let l,u;for(e=s[0],l=0;l{var o,i;const s=(o=r==null?void 0:r.renderBefore)!==null&&o!==void 0?o:e;let n=s._$litPart$;if(n===void 0){const d=(i=r==null?void 0:r.renderBefore)!==null&&i!==void 0?i:null;s._$litPart$=n=new lt(e.insertBefore(ot(),d),d,void 0,r!=null?r:{})}return n._$AI(t),n};/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var Yt,Gt;class yt extends V{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var e,r;const o=super.createRenderRoot();return(e=(r=this.renderOptions).renderBefore)!==null&&e!==void 0||(r.renderBefore=o.firstChild),o}update(e){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=so(r,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Do)===null||e===void 0||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Do)===null||e===void 0||e.setConnected(!1)}render(){return F}}yt.finalized=!0,yt._$litElement$=!0,(Yt=globalThis.litElementHydrateSupport)===null||Yt===void 0||Yt.call(globalThis,{LitElement:yt});const Ke=globalThis.litElementPolyfillSupport;Ke==null||Ke({LitElement:yt});((Gt=globalThis.litElementVersions)!==null&&Gt!==void 0?Gt:globalThis.litElementVersions=[]).push("3.2.2");export{yt as s,no as y}; diff --git a/attic/values/dex/templates/dex/static/logout.html b/attic/values/dex/templates/dex/static/logout.html deleted file mode 100644 index 568d0ab6..00000000 --- a/attic/values/dex/templates/dex/static/logout.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - {{ issuer }} - - - - - - - - - - - -
-
- -
-
- -
-

You have been logged out.

- Yoy will be redirected in a moment. -
- - - diff --git a/attic/values/dex/templates/dex/static/main.css b/attic/values/dex/templates/dex/static/main.css deleted file mode 100644 index 2c92859f..00000000 --- a/attic/values/dex/templates/dex/static/main.css +++ /dev/null @@ -1,148 +0,0 @@ -* { - box-sizing: border-box; -} - -body { - margin: 0; -} - -.dex-container { - color: #333; - margin: 45px auto; - max-width: 500px; - min-width: 320px; - /* text-align: center; */ -} - -.dex-btn { - border-radius: 4px; - border: 0; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 1px rgba(0, 0, 0, 0.25); - cursor: pointer; - font-size: 16px; - padding: 0; -} - -.dex-btn:focus { - outline: none; -} - -.dex-btn:active { - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - outline: none; -} - -.dex-btn-icon { - background-position: center; - background-repeat: no-repeat; - background-size: 24px; - border-radius: 4px 0 0 4px; - float: left; - height: 36px; - margin-right: 5px; - width: 36px; -} - -.dex-btn-icon--google { - background-color: #FFFFFF; - background-image: url(../static/img/google-icon.svg);; -} - -.dex-btn-icon--local { - background-color: #84B6EF; - background-image: url(../static/img/email-icon.svg); -} - -.dex-btn-icon--gitea { - background-color: #F5F5F5; - background-image: url(../static/img/gitea-icon.svg); -} - -.dex-btn-icon--github { - background-color: #F5F5F5; - background-image: url(../static/img/github-icon.svg); -} - -.dex-btn-icon--gitlab { - background-color: #F5F5F5; - background-image: url(../static/img/gitlab-icon.svg); - background-size: contain; -} - -.dex-btn-icon--keystone { - background-color: #F5F5F5; - background-image: url(../static/img/keystone-icon.svg); - background-size: contain; -} - -.dex-btn-icon--oidc { - background-color: #EBEBEE; - background-image: url(../static/img/oidc-icon.svg); - background-size: contain; -} - -.dex-btn-icon--bitbucket-cloud { - background-color: #205081; - background-image: url(../static/img/bitbucket-icon.svg); -} - -.dex-btn-icon--atlassian-crowd { - background-color: #CFDCEA; - background-image: url(../static/img/atlassian-crowd-icon.svg); -} - -.dex-btn-icon--ldap { - background-color: #84B6EF; - background-image: url(../static/img/ldap-icon.svg); -} - -.dex-btn-icon--saml { - background-color: #84B6EF; - background-image: url(../static/img/saml-icon.svg); -} - -.dex-btn-icon--linkedin { - background-image: url(../static/img/linkedin-icon.svg); - background-size: contain; -} - -.dex-btn-icon--microsoft { - background-image: url(../static/img/microsoft-icon.svg); -} - -.dex-btn-text { - font-weight: 600; - line-height: 36px; - padding: 6px 12px; - text-align: center; -} - -.dex-subtle-text { - color: #999; - font-size: 12px; -} - -.dex-separator { - color: #999; -} - -.dex-list { - color: #999; - display: inline-block; - font-size: 12px; - list-style: circle; - text-align: left; -} - -.dex-error-box { - background-color: #DD1327; - color: #fff; - font-size: 14px; - font-weight: normal; - max-width: 320px; - padding: 4px 0; -} - -.dex-error-box { - margin: 20px auto; -} diff --git a/attic/values/dex/templates/dex/templates/approval.html b/attic/values/dex/templates/dex/templates/approval.html deleted file mode 100644 index 1c037d2d..00000000 --- a/attic/values/dex/templates/dex/templates/approval.html +++ /dev/null @@ -1,44 +0,0 @@ -{{ template "header.html" . }} - -
-

Grant Access

- -
-
- {{ if .Scopes }} -
{{ .Client }} would like to:
-
    - {{ range $scope := .Scopes }} -
  • {{ $scope }}
  • - {{ end }} -
- {{ else }} -
{{ .Client }} has not requested any personal information
- {{ end }} -
-
- -
-
-
- - - -
-
-
-
- - - -
-
-
- -
- -{{ template "footer.html" . }} diff --git a/attic/values/dex/templates/dex/templates/device.html b/attic/values/dex/templates/dex/templates/device.html deleted file mode 100644 index 674cbdc3..00000000 --- a/attic/values/dex/templates/dex/templates/device.html +++ /dev/null @@ -1,23 +0,0 @@ -{{ template "header.html" . }} - -
-

Enter User Code

-
-
- {{ if( .UserCode )}} - - {{ else }} - - {{ end }} -
- - {{ if .Invalid }} -
- Invalid or Expired User Code -
- {{ end }} - -
-
- -{{ template "footer.html" . }} diff --git a/attic/values/dex/templates/dex/templates/device_success.html b/attic/values/dex/templates/dex/templates/device_success.html deleted file mode 100644 index 53b09ce5..00000000 --- a/attic/values/dex/templates/dex/templates/device_success.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ template "header.html" . }} - -
-

Login Successful for {{ .ClientName }}

-

Return to your device to continue

-
- -{{ template "footer.html" . }} diff --git a/attic/values/dex/templates/dex/templates/error.html b/attic/values/dex/templates/dex/templates/error.html deleted file mode 100644 index 418f76fb..00000000 --- a/attic/values/dex/templates/dex/templates/error.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ template "header.html" . }} - -
-

{{ .ErrType }}

-

{{ .ErrMsg }}

-
- -{{ template "footer.html" . }} diff --git a/attic/values/dex/templates/dex/templates/footer.html b/attic/values/dex/templates/dex/templates/footer.html deleted file mode 100644 index 5b6e2d65..00000000 --- a/attic/values/dex/templates/dex/templates/footer.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/attic/values/dex/templates/dex/templates/header.html b/attic/values/dex/templates/dex/templates/header.html deleted file mode 100644 index e9ccd123..00000000 --- a/attic/values/dex/templates/dex/templates/header.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - {{ issuer }} - - - - - - - - - - - - -
-
- -
-
- -
diff --git a/attic/values/dex/templates/dex/templates/login.html b/attic/values/dex/templates/dex/templates/login.html deleted file mode 100644 index a2200338..00000000 --- a/attic/values/dex/templates/dex/templates/login.html +++ /dev/null @@ -1,23 +0,0 @@ -{{ template "header.html" . }} - -{{ range $c := .Connectors }} - -{{ end }} - - - - - - - -{{ template "footer.html" . }} - - - diff --git a/attic/values/dex/templates/dex/templates/oob.html b/attic/values/dex/templates/dex/templates/oob.html deleted file mode 100644 index ba84d817..00000000 --- a/attic/values/dex/templates/dex/templates/oob.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ template "header.html" . }} - -
-

Login Successful

-

Please copy this code, switch to your application and paste it there:

- -
- -{{ template "footer.html" . }} diff --git a/attic/values/dex/templates/dex/templates/password.html b/attic/values/dex/templates/dex/templates/password.html deleted file mode 100644 index 8c77b26e..00000000 --- a/attic/values/dex/templates/dex/templates/password.html +++ /dev/null @@ -1,35 +0,0 @@ -{{ template "header.html" . }} - -
-

Log in to Your Account

-
-
-
- -
- -
-
-
- -
- -
- - {{ if .Invalid }} -
- Invalid {{ .UsernamePrompt }} and password. -
- {{ end }} - - - -
- {{ if .BackLink }} - - {{ end }} -
- -{{ template "footer.html" . }} diff --git a/attic/values/dex/templates/dex/themes/dark/favicon.png b/attic/values/dex/templates/dex/themes/dark/favicon.png deleted file mode 100644 index bcd5f21b..00000000 Binary files a/attic/values/dex/templates/dex/themes/dark/favicon.png and /dev/null differ diff --git a/attic/values/dex/templates/dex/themes/dark/logo.png b/attic/values/dex/templates/dex/themes/dark/logo.png deleted file mode 100644 index 8f072508..00000000 Binary files a/attic/values/dex/templates/dex/themes/dark/logo.png and /dev/null differ diff --git a/attic/values/dex/templates/dex/themes/dark/styles.css b/attic/values/dex/templates/dex/themes/dark/styles.css deleted file mode 100644 index edf30412..00000000 --- a/attic/values/dex/templates/dex/themes/dark/styles.css +++ /dev/null @@ -1,122 +0,0 @@ -.theme-body { - background-color: #0f1218; - color: #c8d1d9; - font-family: 'Source Sans Pro', Helvetica, sans-serif; -} - -.theme-navbar { - background-color: #161b22; - box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); - color: #161B2B; - font-size: 13px; - font-weight: 100; - height: 46px; - overflow: hidden; - padding: 0 10px; -} - -.theme-navbar__logo-wrap { - display: inline-block; - height: 100%; - overflow: hidden; - padding: 10px 15px; - width: 300px; -} - -.theme-navbar__logo { - height: 100%; - max-height: 25px; -} - -.theme-heading { - font-size: 20px; - font-weight: 500; - margin-top: 0; - color: #c8d1d9; -} - -.theme-panel { - background-color: #161b22; - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - padding: 30px; -} - -.theme-btn-provider { - background-color: #1e242d; - color: #c8d1d9; - border: 1px solid #30373c; - min-width: 250px; -} - -.theme-btn-provider:hover { - background-color: #212731; - color: #ffffff; -} - -.theme-btn--primary { - background-color: #1e242d; - border: none; - color: #c8d1d9; - min-width: 200px; - padding: 6px 12px; -} - -.theme-btn--primary:hover { - background-color: #212731; - color: #e9e9e9; -} - -.theme-btn--success { - background-color: #1891bb; - color: #e9e9e9; - width: 250px; -} - -.theme-btn--success:hover { - background-color: #1da5d4; -} - -.theme-form-row { - display: block; - margin: 20px auto; -} - -.theme-form-input { - display: block; - height: 36px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - border: 1px solid #515559; - border-radius: 4px; - color: #c8d1d9; - background-color: #0f1218; - box-shadow: inset 0 1px 1px rgb(27, 40, 46); - width: 250px; - margin: auto; -} - -.theme-form-input:focus, -.theme-form-input:active { - outline: none; - border-color: #f8f9f9; - color: #c8d1d9; -} - -.theme-form-label { - width: 250px; - margin: 4px auto; - text-align: left; - position: relative; - font-size: 13px; - font-weight: 600; - color: #c8d1d9; -} - -.theme-link-back { - margin-top: 4px; -} - -.dex-container { - color: #c8d1d9; -} diff --git a/attic/values/dex/templates/dex/themes/light/favicon.png b/attic/values/dex/templates/dex/themes/light/favicon.png deleted file mode 100644 index bcd5f21b..00000000 Binary files a/attic/values/dex/templates/dex/themes/light/favicon.png and /dev/null differ diff --git a/attic/values/dex/templates/dex/themes/light/logo.png b/attic/values/dex/templates/dex/themes/light/logo.png deleted file mode 100644 index 98a85a96..00000000 Binary files a/attic/values/dex/templates/dex/themes/light/logo.png and /dev/null differ diff --git a/attic/values/dex/templates/dex/themes/light/styles.css b/attic/values/dex/templates/dex/themes/light/styles.css deleted file mode 100644 index 2d920571..00000000 --- a/attic/values/dex/templates/dex/themes/light/styles.css +++ /dev/null @@ -1,113 +0,0 @@ -.theme-body { - background-color: #efefef; - color: #333; - font-family: 'Source Sans Pro', Helvetica, sans-serif; -} - -.theme-navbar { - background-color: #fff; - box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); - color: #333; - font-size: 13px; - font-weight: 100; - height: 46px; - overflow: hidden; - padding: 0 10px; -} - -.theme-navbar__logo-wrap { - display: inline-block; - height: 100%; - overflow: hidden; - padding: 10px 15px; - width: 300px; -} - -.theme-navbar__logo { - height: 100%; - max-height: 25px; -} - -.theme-heading { - font-size: 20px; - font-weight: 500; - margin-bottom: 10px; - margin-top: 0; -} - -.theme-panel { - background-color: #fff; - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - padding: 30px; -} - -.theme-btn-provider { - background-color: #fff; - color: #333; - min-width: 250px; -} - -.theme-btn-provider:hover { - color: #999; -} - -.theme-btn--primary { - background-color: #333; - border: none; - color: #fff; - min-width: 200px; - padding: 6px 12px; -} - -.theme-btn--primary:hover { - background-color: #666; - color: #fff; -} - -.theme-btn--success { - background-color: #2FC98E; - color: #fff; - width: 250px; -} - -.theme-btn--success:hover { - background-color: #49E3A8; -} - -.theme-form-row { - display: block; - margin: 20px auto; -} - -.theme-form-input { - border-radius: 4px; - border: 1px solid #CCC; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - color: #666; - display: block; - font-size: 14px; - height: 36px; - line-height: 1.42857143; - margin: auto; - padding: 6px 12px; - width: 250px; -} - -.theme-form-input:focus, -.theme-form-input:active { - border-color: #66AFE9; - outline: none; -} - -.theme-form-label { - font-size: 13px; - font-weight: 600; - margin: 4px auto; - position: relative; - text-align: left; - width: 250px; -} - -.theme-link-back { - margin-top: 4px; -} diff --git a/attic/values/dex/templates/index.html b/attic/values/dex/templates/index.html deleted file mode 100644 index 3c7132b5..00000000 --- a/attic/values/dex/templates/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - Ocanbox IdP - - - - - - - - - - - - - - - - - - diff --git a/attic/values/dex/templates/package-lock.json b/attic/values/dex/templates/package-lock.json deleted file mode 100644 index a0c8b934..00000000 --- a/attic/values/dex/templates/package-lock.json +++ /dev/null @@ -1,6876 +0,0 @@ -{ - "name": "DexTemplates", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "hasInstallScript": true, - "dependencies": { - "@shoelace-style/shoelace": "^2.0.0-beta.88", - "lit": "^2.0.0" - }, - "devDependencies": { - "@web/test-runner": "^0.13.18", - "@web/test-runner-commands": "^0.5.13", - "vite": "^4.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@ctrl/tinycolor": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz", - "integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.0.tgz", - "integrity": "sha512-zbsLwtnHo84w1Kc8rScAo5GMk1GdecSlrflIbfnEBJwvTSj1SL6kkOYV+nHraMCPEy+RNZZUaZyL8JosDGCtGQ==" - }, - "node_modules/@floating-ui/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A==", - "dependencies": { - "@floating-ui/core": "^1.0.5" - } - }, - "node_modules/@lit-labs/react": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@lit-labs/react/-/react-1.1.1.tgz", - "integrity": "sha512-9TC+/ZWb6BJlWCyUr14FKFlaGnyKpeEDorufXozQgke/VoVrslUQNaL7nBmrAWdNrmzx5jWgi8lFmWwrxMjnlA==" - }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz", - "integrity": "sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==" - }, - "node_modules/@lit/reactive-element": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", - "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@shoelace-style/animations": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@shoelace-style/animations/-/animations-1.1.0.tgz", - "integrity": "sha512-Be+cahtZyI2dPKRm8EZSx3YJQ+jLvEcn3xzRP7tM4tqBnvd/eW/64Xh0iOf0t2w5P8iJKfdBbpVNE9naCaOf2g==", - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/claviska" - } - }, - "node_modules/@shoelace-style/localize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@shoelace-style/localize/-/localize-3.0.4.tgz", - "integrity": "sha512-HFY90KD+b1Td2otSBryCOpQjBEArIwlV6Tv4J4rC/E/D5wof2eLF6JUVrbiRNn8GRmwATe4YDAEK7NUD08xO1w==" - }, - "node_modules/@shoelace-style/shoelace": { - "version": "2.0.0-beta.88", - "resolved": "https://registry.npmjs.org/@shoelace-style/shoelace/-/shoelace-2.0.0-beta.88.tgz", - "integrity": "sha512-AoT3jtD7Gh5jgEtvbyqgOL+VDmxlcW0UYpKBZ0FzfF7bV38UeZqosnfeXZzQXaP/U/s4BpgkSS0+ZpPuepjDtw==", - "dependencies": { - "@ctrl/tinycolor": "^3.5.0", - "@floating-ui/dom": "^1.0.7", - "@lit-labs/react": "^1.1.0", - "@shoelace-style/animations": "^1.1.0", - "@shoelace-style/localize": "^3.0.4", - "lit": "^2.4.1", - "qr-creator": "^1.0.0" - }, - "engines": { - "node": ">=14.17.0" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/claviska" - } - }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/babel__code-frame": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", - "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*" - } - }, - "node_modules/@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "dev": true - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==", - "dev": true - }, - "node_modules/@types/convert-source-map": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", - "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", - "dev": true - }, - "node_modules/@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", - "dev": true - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", - "dev": true - }, - "node_modules/@types/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", - "dev": true - }, - "node_modules/@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "dev": true, - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dev": true, - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.2.tgz", - "integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==", - "dev": true - }, - "node_modules/@types/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@web/browser-logs": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", - "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/config-loader": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", - "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", - "dev": true, - "dependencies": { - "semver": "^7.3.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/dev-server": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.24.tgz", - "integrity": "sha512-2Erea/FywKMH7ANaj8fVqrA6hKXHI0SYWXuf9OvCCSb4t+nwrNlAZGbeL8FXJGgJqD0M6+8g7xAZveeTLYGU9w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@rollup/plugin-node-resolve": "^11.0.1", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.3.16", - "@web/dev-server-rollup": "^0.3.10", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.28" - }, - "bin": { - "wds": "dist/bin.js", - "web-dev-server": "dist/bin.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/dev-server-core": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.16.tgz", - "integrity": "sha512-nj6liCErIGtpuZYPf6QaxGQ9nlaHd8Cf/NBcRhogskvjOVFkF3FS9xpjRw3WidkmOQnk+D0ZGCeXjtTibgy5CA==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.2.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^0.9.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^4.0.6", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/dev-server-rollup": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.10.tgz", - "integrity": "sha512-TWRMP+dIw94+C8ycrqbqBQirR7XNsGsY5O0ZLaS8YQMFs/a7XcGeUq6yq8KARO22gQ9c1Nu9nrRQLp4pVieBQA==", - "dev": true, - "dependencies": { - "@web/dev-server-core": "^0.3.16", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.56.2", - "whatwg-url": "^9.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/parse5-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", - "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", - "dev": true, - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@web/test-runner": { - "version": "0.13.18", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.13.18.tgz", - "integrity": "sha512-VeKs5RG3PbGc466Ylr0kk1S8vtXQ71Ll7g+t3bkScqlAAUo17qRpetQQjhUWQdU4uAQfteL92GLyfCc06VeYpA==", - "dev": true, - "dependencies": { - "@web/browser-logs": "^0.2.2", - "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.24", - "@web/test-runner-chrome": "^0.10.3", - "@web/test-runner-commands": "^0.5.10", - "@web/test-runner-core": "^0.10.21", - "@web/test-runner-mocha": "^0.7.4", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "convert-source-map": "^1.7.0", - "diff": "^5.0.0", - "globby": "^11.0.1", - "nanocolors": "^0.2.1", - "portfinder": "^1.0.28", - "source-map": "^0.7.3" - }, - "bin": { - "web-test-runner": "dist/bin.js", - "wtr": "dist/bin.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-chrome": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.3.tgz", - "integrity": "sha512-tE0dH1K2iWJMFsJql1sXntRpNXIEaJVN2VVB/HW6nLMtIoqyI/TQgEPZuDGiW2+UlNrXEI9nuL3fOyxW/lZ38g==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "@web/test-runner-coverage-v8": "^0.4.8", - "chrome-launcher": "^0.14.0", - "puppeteer-core": "^10.2.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-commands": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.5.13.tgz", - "integrity": "sha512-FXnpUU89ALbRlh9mgBd7CbSn5uzNtr8gvnQZPOvGLDAJ7twGvZdUJEAisPygYx2BLPSFl3/Mre8pH8zshJb8UQ==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-core": { - "version": "0.10.21", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.21.tgz", - "integrity": "sha512-Dh1TJITyil4w22DXwCmYEyp4BBzRFxRqiUbJ/iPziT1E5heAx/pZPug1oFs83LKUc/crOcDhObz6u4ynGWz9wQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^1.5.1", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.16", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^1.7.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-coverage-v8": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.8.tgz", - "integrity": "sha512-Ib0AscR8Xf9E/V7rf3XOVQTe4vKIbwSTupxV1xGgzj3x4RKUuMUg9FLz9EigZ5iN0mOzZKDllyRS523hbdhDtA==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.10.20", - "istanbul-lib-coverage": "^3.0.0", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^8.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@web/test-runner-mocha": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.4.tgz", - "integrity": "sha512-EvAz6eCyBpVyXUq/bTSYpSwcSd/jH8XY+vAwS/xprWNo2WFY0LW0FcwcuWdq4LckDxTZVXaGb1dj3lDfEsOeVw==", - "dev": true, - "dependencies": { - "@types/mocha": "^8.2.0", - "@web/test-runner-core": "^0.10.20" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-content-type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", - "dev": true, - "dependencies": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chrome-launcher": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.0.tgz", - "integrity": "sha512-W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/chrome-launcher/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", - "dev": true, - "dependencies": { - "inflation": "^2.0.0", - "qs": "^6.5.2", - "raw-body": "^2.3.3", - "type-is": "^1.6.16" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-4zqtU1hYsSJzcJBOcNZIbW5Fbk9BkjCp1pZVhQKoRaWL5J7N4XphDLwo8aWwdQpTugxwu+jf9u2ZhkXiqp5Z6A==", - "dev": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz", - "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", - "dev": true, - "dependencies": { - "array-back": "^4.0.1", - "chalk": "^2.4.2", - "table-layout": "^1.0.1", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", - "dev": true, - "dependencies": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", - "dev": true - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/errorstacks": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.3.2.tgz", - "integrity": "sha512-cJp8qf5t2cXmVZJjZVrcU4ODFJeQOcUyjJEtPFtWO+3N6JPM6vCe4Sfv3cwIs/qS7gnUo/fvKX/mDCVQZq+P7A==", - "dev": true - }, - "node_modules/es-module-lexer": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.1.tgz", - "integrity": "sha512-17Ed9misDnpyNBJh63g1OhW3qUFecDgGOivI85JeZY/LGhDum8e+cltukbkSK8pcJnXXEkya56sp4vSS1nzoUw==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", - "dev": true, - "dependencies": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz", - "integrity": "sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/keygrip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", - "dev": true, - "dependencies": { - "tsscmp": "1.0.6" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/koa": { - "version": "2.13.3", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.3.tgz", - "integrity": "sha512-XhXIoR+ylAwqG3HhXwnMPQAM/4xfywz52OvxZNmxmTWGGHsvmBv4NSIhURha6yMuvEex1WdtplUTHnxnKpQiGw==", - "dev": true, - "dependencies": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.8.0", - "debug": "^4.3.2", - "delegates": "^1.0.0", - "depd": "^2.0.0", - "destroy": "^1.0.4", - "encodeurl": "^1.0.2", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^2.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - }, - "engines": { - "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" - } - }, - "node_modules/koa-compose": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true - }, - "node_modules/koa-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", - "dev": true, - "dependencies": { - "co": "^4.6.0", - "koa-compose": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/koa-etag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", - "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", - "dev": true, - "dependencies": { - "etag": "^1.8.1" - } - }, - "node_modules/koa-send": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", - "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "http-errors": "^1.7.3", - "resolve-path": "^1.4.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/koa-static": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", - "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "koa-send": "^5.0.0" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/koa-static/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/lighthouse-logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", - "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "marky": "^1.2.2" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/lit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", - "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.2.0", - "lit-html": "^2.6.0" - } - }, - "node_modules/lit-element": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", - "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", - "dependencies": { - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.2.0" - } - }, - "node_modules/lit-html": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.6.1.tgz", - "integrity": "sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/marky": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.2.tgz", - "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dev": true, - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanocolors": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz", - "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", - "dev": true - }, - "node_modules/open": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", - "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/puppeteer-core": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-10.4.0.tgz", - "integrity": "sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ==", - "dev": true, - "dependencies": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "engines": { - "node": ">=10.18.1" - } - }, - "node_modules/puppeteer-core/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/qr-creator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/qr-creator/-/qr-creator-1.0.0.tgz", - "integrity": "sha512-C0cqfbS1P5hfqN4NhsYsUXePlk9BO+a45bAQ3xLYjBL3bOIFzoVEjs79Fado9u9BPBD3buHi3+vY+C8tHh4qMQ==" - }, - "node_modules/qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-path": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=", - "dev": true, - "dependencies": { - "http-errors": "~1.6.2", - "path-is-absolute": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/resolve-path/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/resolve-path/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/resolve-path/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/resolve-path/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.57.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.57.0.tgz", - "integrity": "sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dev": true, - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "node_modules/tar-fs/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true, - "engines": { - "node": ">=0.6.x" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", - "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", - "dev": true, - "dependencies": { - "esbuild": "^0.16.3", - "postcss": "^8.4.20", - "resolve": "^1.22.1", - "rollup": "^3.7.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/rollup": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.10.1.tgz", - "integrity": "sha512-3Er+yel3bZbZX1g2kjVM+FW+RUWDxbG87fcqFM5/9HbPCTpbVp6JOLn7jlxnNlbu7s/N/uDA4EV/91E2gWnxzw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-url": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz", - "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==", - "dev": true, - "dependencies": { - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dev": true, - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/ylru": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", - "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@ctrl/tinycolor": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz", - "integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==" - }, - "@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "dev": true, - "optional": true - }, - "@floating-ui/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.0.tgz", - "integrity": "sha512-zbsLwtnHo84w1Kc8rScAo5GMk1GdecSlrflIbfnEBJwvTSj1SL6kkOYV+nHraMCPEy+RNZZUaZyL8JosDGCtGQ==" - }, - "@floating-ui/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A==", - "requires": { - "@floating-ui/core": "^1.0.5" - } - }, - "@lit-labs/react": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@lit-labs/react/-/react-1.1.1.tgz", - "integrity": "sha512-9TC+/ZWb6BJlWCyUr14FKFlaGnyKpeEDorufXozQgke/VoVrslUQNaL7nBmrAWdNrmzx5jWgi8lFmWwrxMjnlA==" - }, - "@lit-labs/ssr-dom-shim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz", - "integrity": "sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==" - }, - "@lit/reactive-element": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", - "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@shoelace-style/animations": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@shoelace-style/animations/-/animations-1.1.0.tgz", - "integrity": "sha512-Be+cahtZyI2dPKRm8EZSx3YJQ+jLvEcn3xzRP7tM4tqBnvd/eW/64Xh0iOf0t2w5P8iJKfdBbpVNE9naCaOf2g==" - }, - "@shoelace-style/localize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@shoelace-style/localize/-/localize-3.0.4.tgz", - "integrity": "sha512-HFY90KD+b1Td2otSBryCOpQjBEArIwlV6Tv4J4rC/E/D5wof2eLF6JUVrbiRNn8GRmwATe4YDAEK7NUD08xO1w==" - }, - "@shoelace-style/shoelace": { - "version": "2.0.0-beta.88", - "resolved": "https://registry.npmjs.org/@shoelace-style/shoelace/-/shoelace-2.0.0-beta.88.tgz", - "integrity": "sha512-AoT3jtD7Gh5jgEtvbyqgOL+VDmxlcW0UYpKBZ0FzfF7bV38UeZqosnfeXZzQXaP/U/s4BpgkSS0+ZpPuepjDtw==", - "requires": { - "@ctrl/tinycolor": "^3.5.0", - "@floating-ui/dom": "^1.0.7", - "@lit-labs/react": "^1.1.0", - "@shoelace-style/animations": "^1.1.0", - "@shoelace-style/localize": "^3.0.4", - "lit": "^2.4.1", - "qr-creator": "^1.0.0" - } - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/babel__code-frame": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", - "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*" - } - }, - "@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "dev": true - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==", - "dev": true - }, - "@types/convert-source-map": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-1.5.2.tgz", - "integrity": "sha512-tHs++ZeXer40kCF2JpE51Hg7t4HPa18B1b1Dzy96S0eCw8QKECNMYMfwa1edK/x8yCN0r4e6ewvLcc5CsVGkdg==", - "dev": true - }, - "@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "@types/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", - "dev": true - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", - "dev": true - }, - "@types/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", - "dev": true - }, - "@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", - "dev": true, - "requires": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dev": true, - "requires": { - "@types/koa": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true - }, - "@types/node": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.2.tgz", - "integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==", - "dev": true - }, - "@types/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@web/browser-logs": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.5.tgz", - "integrity": "sha512-Qxo1wY/L7yILQqg0jjAaueh+tzdORXnZtxQgWH23SsTCunz9iq9FvsZa8Q5XlpjnZ3vLIsFEuEsCMqFeohJnEg==", - "dev": true, - "requires": { - "errorstacks": "^2.2.0" - } - }, - "@web/config-loader": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", - "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", - "dev": true, - "requires": { - "semver": "^7.3.4" - } - }, - "@web/dev-server": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.24.tgz", - "integrity": "sha512-2Erea/FywKMH7ANaj8fVqrA6hKXHI0SYWXuf9OvCCSb4t+nwrNlAZGbeL8FXJGgJqD0M6+8g7xAZveeTLYGU9w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@rollup/plugin-node-resolve": "^11.0.1", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.1.3", - "@web/dev-server-core": "^0.3.16", - "@web/dev-server-rollup": "^0.3.10", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^1.1.5", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.28" - } - }, - "@web/dev-server-core": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.3.16.tgz", - "integrity": "sha512-nj6liCErIGtpuZYPf6QaxGQ9nlaHd8Cf/NBcRhogskvjOVFkF3FS9xpjRw3WidkmOQnk+D0ZGCeXjtTibgy5CA==", - "dev": true, - "requires": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.2.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^0.9.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^4.0.6", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - } - }, - "@web/dev-server-rollup": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.3.10.tgz", - "integrity": "sha512-TWRMP+dIw94+C8ycrqbqBQirR7XNsGsY5O0ZLaS8YQMFs/a7XcGeUq6yq8KARO22gQ9c1Nu9nrRQLp4pVieBQA==", - "dev": true, - "requires": { - "@web/dev-server-core": "^0.3.16", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^2.56.2", - "whatwg-url": "^9.0.0" - } - }, - "@web/parse5-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.0.tgz", - "integrity": "sha512-Pgkx3ECc8EgXSlS5EyrgzSOoUbM6P8OKS471HLAyvOBcP1NCBn0to4RN/OaKASGq8qa3j+lPX9H14uA5AHEnQg==", - "dev": true, - "requires": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - } - }, - "@web/test-runner": { - "version": "0.13.18", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.13.18.tgz", - "integrity": "sha512-VeKs5RG3PbGc466Ylr0kk1S8vtXQ71Ll7g+t3bkScqlAAUo17qRpetQQjhUWQdU4uAQfteL92GLyfCc06VeYpA==", - "dev": true, - "requires": { - "@web/browser-logs": "^0.2.2", - "@web/config-loader": "^0.1.3", - "@web/dev-server": "^0.1.24", - "@web/test-runner-chrome": "^0.10.3", - "@web/test-runner-commands": "^0.5.10", - "@web/test-runner-core": "^0.10.21", - "@web/test-runner-mocha": "^0.7.4", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.1", - "convert-source-map": "^1.7.0", - "diff": "^5.0.0", - "globby": "^11.0.1", - "nanocolors": "^0.2.1", - "portfinder": "^1.0.28", - "source-map": "^0.7.3" - } - }, - "@web/test-runner-chrome": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.10.3.tgz", - "integrity": "sha512-tE0dH1K2iWJMFsJql1sXntRpNXIEaJVN2VVB/HW6nLMtIoqyI/TQgEPZuDGiW2+UlNrXEI9nuL3fOyxW/lZ38g==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "@web/test-runner-coverage-v8": "^0.4.8", - "chrome-launcher": "^0.14.0", - "puppeteer-core": "^10.2.0" - } - }, - "@web/test-runner-commands": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.5.13.tgz", - "integrity": "sha512-FXnpUU89ALbRlh9mgBd7CbSn5uzNtr8gvnQZPOvGLDAJ7twGvZdUJEAisPygYx2BLPSFl3/Mre8pH8zshJb8UQ==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "mkdirp": "^1.0.4" - } - }, - "@web/test-runner-core": { - "version": "0.10.21", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.21.tgz", - "integrity": "sha512-Dh1TJITyil4w22DXwCmYEyp4BBzRFxRqiUbJ/iPziT1E5heAx/pZPug1oFs83LKUc/crOcDhObz6u4ynGWz9wQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^1.5.1", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.1", - "@web/dev-server-core": "^0.3.16", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^1.7.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - } - }, - "@web/test-runner-coverage-v8": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.4.8.tgz", - "integrity": "sha512-Ib0AscR8Xf9E/V7rf3XOVQTe4vKIbwSTupxV1xGgzj3x4RKUuMUg9FLz9EigZ5iN0mOzZKDllyRS523hbdhDtA==", - "dev": true, - "requires": { - "@web/test-runner-core": "^0.10.20", - "istanbul-lib-coverage": "^3.0.0", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^8.0.0" - } - }, - "@web/test-runner-mocha": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.7.4.tgz", - "integrity": "sha512-EvAz6eCyBpVyXUq/bTSYpSwcSd/jH8XY+vAwS/xprWNo2WFY0LW0FcwcuWdq4LckDxTZVXaGb1dj3lDfEsOeVw==", - "dev": true, - "requires": { - "@types/mocha": "^8.2.0", - "@web/test-runner-core": "^0.10.20" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "cache-content-type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", - "dev": true, - "requires": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-launcher": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.0.tgz", - "integrity": "sha512-W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ==", - "dev": true, - "requires": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", - "dev": true, - "requires": { - "inflation": "^2.0.0", - "qs": "^6.5.2", - "raw-body": "^2.3.3", - "type-is": "^1.6.16" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-4zqtU1hYsSJzcJBOcNZIbW5Fbk9BkjCp1pZVhQKoRaWL5J7N4XphDLwo8aWwdQpTugxwu+jf9u2ZhkXiqp5Z6A==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, - "command-line-usage": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz", - "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", - "dev": true, - "requires": { - "array-back": "^4.0.1", - "chalk": "^2.4.2", - "table-layout": "^1.0.1", - "typical": "^5.2.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", - "dev": true, - "requires": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - } - }, - "debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", - "dev": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "errorstacks": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.3.2.tgz", - "integrity": "sha512-cJp8qf5t2cXmVZJjZVrcU4ODFJeQOcUyjJEtPFtWO+3N6JPM6vCe4Sfv3cwIs/qS7gnUo/fvKX/mDCVQZq+P7A==", - "dev": true - }, - "es-module-lexer": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.1.tgz", - "integrity": "sha512-17Ed9misDnpyNBJh63g1OhW3qUFecDgGOivI85JeZY/LGhDum8e+cltukbkSK8pcJnXXEkya56sp4vSS1nzoUw==", - "dev": true - }, - "esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", - "dev": true, - "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - } - }, - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz", - "integrity": "sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ==", - "dev": true - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "keygrip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", - "dev": true, - "requires": { - "tsscmp": "1.0.6" - } - }, - "koa": { - "version": "2.13.3", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.3.tgz", - "integrity": "sha512-XhXIoR+ylAwqG3HhXwnMPQAM/4xfywz52OvxZNmxmTWGGHsvmBv4NSIhURha6yMuvEex1WdtplUTHnxnKpQiGw==", - "dev": true, - "requires": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.8.0", - "debug": "^4.3.2", - "delegates": "^1.0.0", - "depd": "^2.0.0", - "destroy": "^1.0.4", - "encodeurl": "^1.0.2", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^2.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - } - }, - "koa-compose": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true - }, - "koa-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", - "dev": true, - "requires": { - "co": "^4.6.0", - "koa-compose": "^4.1.0" - } - }, - "koa-etag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", - "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", - "dev": true, - "requires": { - "etag": "^1.8.1" - } - }, - "koa-send": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", - "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "http-errors": "^1.7.3", - "resolve-path": "^1.4.0" - } - }, - "koa-static": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", - "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "koa-send": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "lighthouse-logger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz", - "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "marky": "^1.2.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "lit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", - "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", - "requires": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.2.0", - "lit-html": "^2.6.0" - } - }, - "lit-element": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", - "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", - "requires": { - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.2.0" - } - }, - "lit-html": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.6.1.tgz", - "integrity": "sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==", - "requires": { - "@types/trusted-types": "^2.0.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "marky": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.2.tgz", - "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dev": true, - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanocolors": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz", - "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", - "dev": true - }, - "open": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", - "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "puppeteer-core": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-10.4.0.tgz", - "integrity": "sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ==", - "dev": true, - "requires": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "requires": {} - } - } - }, - "qr-creator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/qr-creator/-/qr-creator-1.0.0.tgz", - "integrity": "sha512-C0cqfbS1P5hfqN4NhsYsUXePlk9BO+a45bAQ3xLYjBL3bOIFzoVEjs79Fado9u9BPBD3buHi3+vY+C8tHh4qMQ==" - }, - "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-path": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=", - "dev": true, - "requires": { - "http-errors": "~1.6.2", - "path-is-absolute": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.57.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.57.0.tgz", - "integrity": "sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dev": true, - "requires": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } - } - }, - "tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - }, - "unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vite": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", - "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", - "dev": true, - "requires": { - "esbuild": "^0.16.3", - "fsevents": "~2.3.2", - "postcss": "^8.4.20", - "resolve": "^1.22.1", - "rollup": "^3.7.0" - }, - "dependencies": { - "rollup": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.10.1.tgz", - "integrity": "sha512-3Er+yel3bZbZX1g2kjVM+FW+RUWDxbG87fcqFM5/9HbPCTpbVp6JOLn7jlxnNlbu7s/N/uDA4EV/91E2gWnxzw==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - } - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-url": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz", - "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==", - "dev": true, - "requires": { - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dev": true, - "requires": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "dependencies": { - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true, - "requires": {} - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "ylru": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", - "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", - "dev": true - } - } -} diff --git a/attic/values/dex/templates/package.json b/attic/values/dex/templates/package.json deleted file mode 100644 index 17fbb9e4..00000000 --- a/attic/values/dex/templates/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "scripts": { - "install": "dotnet tool restore", - "build": "dotnet fable src -o build/client --run vite build", - "start": "dotnet fable watch src -s -o build/client --run vite" - }, - "dependencies": { - "@shoelace-style/shoelace": "^2.0.0-beta.88", - "lit": "^2.0.0" - }, - "devDependencies": { - "@web/test-runner": "^0.13.18", - "@web/test-runner-commands": "^0.5.13", - "vite": "^4.0.0" - } -} diff --git a/attic/values/dex/templates/src/App.fs b/attic/values/dex/templates/src/App.fs deleted file mode 100644 index 7ead68fb..00000000 --- a/attic/values/dex/templates/src/App.fs +++ /dev/null @@ -1,129 +0,0 @@ -module Lit.TodoMVC.App - -open Browser.WebStorage -open Fable.Core.JsInterop -open Lit - -// importAll "@shoelace-style/shoelace/dist/themes/light.css?inline" -importDefault "@shoelace-style/shoelace/dist/components/button/button.js" -importDefault "@shoelace-style/shoelace/dist/components/icon/icon.js" -importDefault "@shoelace-style/shoelace/dist/components/input/input.js" -importDefault "@shoelace-style/shoelace/dist/components/card/card.js" -importDefault "@shoelace-style/shoelace/dist/components/checkbox/checkbox.js" -import "setBasePath" "@shoelace-style/shoelace/dist/utilities/base-path.js" - -// [] -// let setBasePath (_: string): unit = jsNative -// setBasePath "/dex/static/shoelace/dist" - -[] -let MyApp() = - let _ = LitElement.init(fun cfg -> - cfg.useShadowDom <- true - ) - - let uid, setUid = Hook.useState "" - let amnesia, setAmnesia = Hook.useState false - - let splitUid (x: string) = - let s = x.Split '@' - if s.Length = 1 then - x, "default" - else - x, s[1] - - let getTenanatAnchor tenant = - let e = Browser.Dom.document.getElementById tenant - if isNull e then - Browser.Dom.document.getElementById "default" - else - e - - let gotoIdentityProvider _ = - let uid' = - if uid = "" then - localStorage["user_id"] - else uid - let user, tenant = splitUid uid' - let a = getTenanatAnchor tenant - let href = a.attributes[0] - let hint = - if href.value.Contains "?" then - "&login_hint" - else - "?login_hint" - href.value <- $"{href.value}{hint}={user}" - if not amnesia then - localStorage["user_id"] <- user - a.click() - - let onEnter e = - let key = e?key - if key = "Enter" then - gotoIdentityProvider () - - let defaultUser = - if isNullOrUndefined localStorage["user_id"] then - "" - else - localStorage["user_id"] - // Browser.Dom.document.cookie - // |> fun s -> s.Split ';' - // |> Array.filter (fun s -> s.StartsWith "user_id=") - // |> Array.tryHead - // |> Option.map (fun s -> s.Split '=' |> Array.last) - // |> Option.defaultValue "" - - let toggleAmnesia _ = setAmnesia (not amnesia) - - html $""" -
-
- -
- Oceanbox login -
- -
- Remember me -
-
- Next -
-
-
-
- - - """ diff --git a/attic/values/dex/templates/src/DexTemplates.fsproj b/attic/values/dex/templates/src/DexTemplates.fsproj deleted file mode 100644 index 5c9f91af..00000000 --- a/attic/values/dex/templates/src/DexTemplates.fsproj +++ /dev/null @@ -1,12 +0,0 @@ - - - netstandard2.0 - - - - - - - - - diff --git a/attic/values/dex/values-prod.yaml b/attic/values/dex/values-prod.yaml deleted file mode 100644 index 06a6035a..00000000 --- a/attic/values/dex/values-prod.yaml +++ /dev/null @@ -1,26 +0,0 @@ -configSecret: - create: false - name: prod-dex-config - -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - nginx.ingress.kubernetes.io/ssl-redirect: "true" - hosts: - - host: idp.oceanbox.io - paths: - - path: / - pathType: ImplementationSpecific - - host: idp.srv.oceanbox.io - paths: - - path: / - pathType: ImplementationSpecific - tls: - - secretName: prod-dex-tls - hosts: - - idp.oceanbox.io - - idp.srv.oceanbox.io - - diff --git a/attic/values/dex/values-staging.yaml b/attic/values/dex/values-staging.yaml deleted file mode 100644 index fd5b8f26..00000000 --- a/attic/values/dex/values-staging.yaml +++ /dev/null @@ -1,21 +0,0 @@ -configSecret: - create: false - name: staging-dex-config - -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - nginx.ingress.kubernetes.io/ssl-redirect: "true" - hosts: - - host: idp.beta.oceanbox.io - paths: - - path: / - pathType: ImplementationSpecific - tls: - - secretName: staging-dex-tls - hosts: - - idp.beta.oceanbox.io - - diff --git a/attic/values/dex/values.yaml b/attic/values/dex/values.yaml deleted file mode 100644 index 90dd9c69..00000000 --- a/attic/values/dex/values.yaml +++ /dev/null @@ -1,37 +0,0 @@ -replicaCount: 1 -https: - enabled: false -grpc: - enabled: false - -configSecret: - create: false - name: dex-config -config: {} - -volumes: - - name: web - persistentVolumeClaim: - claimName: oceanbox-dex -volumeMounts: - - name: web - mountPath: /srv/dex/web -envVars: [] - -service: - annotations: {} - type: ClusterIP - clusterIP: "" - ports: - http: - port: 5556 - nodePort: - https: - port: 5554 - nodePort: - grpc: - port: 5557 - nodePort: - -serviceMonitor: - enabled: true diff --git a/attic/values/hipster/base/deployment_patch.yaml b/attic/values/hipster/base/deployment_patch.yaml deleted file mode 100644 index c8368399..00000000 --- a/attic/values/hipster/base/deployment_patch.yaml +++ /dev/null @@ -1,9 +0,0 @@ -- op: replace - path: /spec/template/spec/containers/0/livenessProbe/httpGet/path - value: /healthz -- op: replace - path: /spec/template/spec/containers/0/readinessProbe/httpGet/path - value: /healthz -- op: add - path: /spec/template/spec/containers/0/envFrom - value: [] diff --git a/attic/values/hipster/base/kustomization.yaml b/attic/values/hipster/base/kustomization.yaml deleted file mode 100644 index 43173a86..00000000 --- a/attic/values/hipster/base/kustomization.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -patches: - - target: - version: v1 - group: apps - kind: Deployment - path: deployment_patch.yaml - - target: - version: v1 - kind: Service - path: service_patch.yaml -resources: - - _manifest.yaml diff --git a/attic/values/hipster/base/service_patch.yaml b/attic/values/hipster/base/service_patch.yaml deleted file mode 100644 index b0505054..00000000 --- a/attic/values/hipster/base/service_patch.yaml +++ /dev/null @@ -1,7 +0,0 @@ -- op: add - path: /spec/ports/- - value: - name: intra - port: 8000 - protocol: TCP - targetPort: 8000 \ No newline at end of file diff --git a/attic/values/hipster/chart b/attic/values/hipster/chart deleted file mode 100644 index da86631b..00000000 --- a/attic/values/hipster/chart +++ /dev/null @@ -1 +0,0 @@ -oceanbox/hipster diff --git a/attic/values/hipster/prod/appsettings.json b/attic/values/hipster/prod/appsettings.json deleted file mode 100644 index 5e4364a4..00000000 --- a/attic/values/hipster/prod/appsettings.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "slurm": { - "baseUrl": "https://hipster-slurmrestd.ekman.oceanbox.io/", - "slurmApi": "slurm/v0.0.38/", - "dbdApi": "slurmdbd/v0.0.38/", - "user": "serf", - "password": "" - }, - "amqp": { - "auth": "", - "host": "10.255.241.201:30673" - }, - "archmeister": "https://archmeister.srv.oceanbox.io", - "pubsubName": "pubsub", - "pubsubTopic": "hipster-atlantis", - "fenceRadius": 1000.0, - "cerbosUrl": "http://prod-cerbos.idp.svc:3593" -} diff --git a/attic/values/hipster/prod/bindings.yaml b/attic/values/hipster/prod/bindings.yaml deleted file mode 100644 index dab40cf8..00000000 --- a/attic/values/hipster/prod/bindings.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# -# Create a queue binding for receiving events from RabbitMQ. -# Used by Hipster to get info about changes in job status from slurm. -# -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: slurm-events # name of the subscription path in the app! -spec: - type: bindings.rabbitmq - version: v1 - metadata: - - name: host - secretKeyRef: - name: prod-rabbitmq - key: connString - - name: queueName - value: prod-hipster-slurm-job-events - - name: durable - value: true - - name: contentType - value: "application/json" - - name: route - value: /slurm-events -scopes: - - prod-hipster diff --git a/attic/values/hipster/prod/default.env b/attic/values/hipster/prod/default.env deleted file mode 100644 index 44a29c09..00000000 --- a/attic/values/hipster/prod/default.env +++ /dev/null @@ -1,2 +0,0 @@ -SLURM_PASSWORD=wooqueiLee3ao0ha -SEQ_APIKEY=DRRRBGlTvl00icnSGbeT diff --git a/attic/values/hipster/prod/deployment_patch.yaml b/attic/values/hipster/prod/deployment_patch.yaml deleted file mode 100644 index 951f7d23..00000000 --- a/attic/values/hipster/prod/deployment_patch.yaml +++ /dev/null @@ -1,37 +0,0 @@ -- op: add - path: /spec/template/spec/containers/0/env - value: [] -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: LOG_LEVEL - value: "4" -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: CI_ENVIRONMENT - value: "production" -- op: replace - path: /spec/template/spec/containers/0/livenessProbe/httpGet/path - value: /healthz -- op: replace - path: /spec/template/spec/containers/0/readinessProbe/httpGet/path - value: /healthz -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: AMQP_USER - value: user -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: AMQP_PASSWORD - valueFrom: - secretKeyRef: - name: prod-rabbitmq - key: rabbitmq-password -- op: add - path: /spec/template/spec/containers/0/envFrom/- - value: - secretRef: - name: prod-hipster-env diff --git a/attic/values/hipster/prod/kustomization.yaml b/attic/values/hipster/prod/kustomization.yaml deleted file mode 100644 index 4cb18bdc..00000000 --- a/attic/values/hipster/prod/kustomization.yaml +++ /dev/null @@ -1,19 +0,0 @@ -generatorOptions: - disableNameSuffixHash: true -configMapGenerator: -- name: prod-hipster-appsettings - files: - - appsettings.json -secretGenerator: -- name: prod-hipster-env - envs: - - default.env -patches: - - target: - group: apps - version: v1 - kind: Deployment - path: deployment_patch.yaml -resources: - - bindings.yaml - - ../base diff --git a/attic/values/hipster/staging/appsettings.json b/attic/values/hipster/staging/appsettings.json deleted file mode 100644 index ea4ddf5d..00000000 --- a/attic/values/hipster/staging/appsettings.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "slurm": { - "baseUrl": "https://hipster-slurmrestd.ekman.oceanbox.io/", - "slurmApi": "slurm/v0.0.38/", - "dbdApi": "slurmdbd/v0.0.38/", - "user": "serf", - "password": "wooqueiLee3ao0ha" - }, - "amqp": { - "auth": "", - "host": "10.255.241.201:31673" - }, - "archmeister": "https://archmeister.beta.oceanbox.io", - "pubsubName": "pubsub", - "pubsubTopic": "hipster-atlantis", - "fenceRadius": 1000.0, - "cerbosUrl": "http://staging-cerbos.idp.svc:3593" -} diff --git a/attic/values/hipster/staging/bindings.yaml b/attic/values/hipster/staging/bindings.yaml deleted file mode 100644 index 291b3aba..00000000 --- a/attic/values/hipster/staging/bindings.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# -# Create a queue binding for receiving events from RabbitMQ. -# Used by Hipster to get info about changes in job status from slurm. -# -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: slurm-events # name of the subscription path in the app! -spec: - type: bindings.rabbitmq - version: v1 - metadata: - - name: host - secretKeyRef: - name: staging-rabbitmq - key: connString - - name: queueName - value: staging-hipster-slurm-job-events - - name: durable - value: true - - name: contentType - value: "application/json" - - name: route - value: /slurm-events -scopes: - - staging-hipster diff --git a/attic/values/hipster/staging/default.env b/attic/values/hipster/staging/default.env deleted file mode 100644 index 44a29c09..00000000 --- a/attic/values/hipster/staging/default.env +++ /dev/null @@ -1,2 +0,0 @@ -SLURM_PASSWORD=wooqueiLee3ao0ha -SEQ_APIKEY=DRRRBGlTvl00icnSGbeT diff --git a/attic/values/hipster/staging/deployment_patch.yaml b/attic/values/hipster/staging/deployment_patch.yaml deleted file mode 100644 index d57f4179..00000000 --- a/attic/values/hipster/staging/deployment_patch.yaml +++ /dev/null @@ -1,37 +0,0 @@ -- op: add - path: /spec/template/spec/containers/0/env - value: [] -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: LOG_LEVEL - value: "4" -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: CI_ENVIRONMENT - value: "staging" -- op: replace - path: /spec/template/spec/containers/0/livenessProbe/httpGet/path - value: /healthz -- op: replace - path: /spec/template/spec/containers/0/readinessProbe/httpGet/path - value: /healthz -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: AMQP_USER - value: user -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: AMQP_PASSWORD - valueFrom: - secretKeyRef: - name: staging-rabbitmq - key: rabbitmq-password -- op: add - path: /spec/template/spec/containers/0/envFrom/- - value: - secretRef: - name: staging-hipster-env diff --git a/attic/values/hipster/staging/kustomization.yaml b/attic/values/hipster/staging/kustomization.yaml deleted file mode 100644 index e6c6305d..00000000 --- a/attic/values/hipster/staging/kustomization.yaml +++ /dev/null @@ -1,19 +0,0 @@ -generatorOptions: - disableNameSuffixHash: true -configMapGenerator: -- name: staging-hipster-appsettings - files: - - appsettings.json -secretGenerator: -- name: staging-hipster-env - envs: - - default.env -patches: - - target: - group: apps - version: v1 - kind: Deployment - path: deployment_patch.yaml -resources: - - bindings.yaml - - ../base diff --git a/attic/values/hipster/values-prod.yaml b/attic/values/hipster/values-prod.yaml deleted file mode 100644 index a656eef8..00000000 --- a/attic/values/hipster/values-prod.yaml +++ /dev/null @@ -1,23 +0,0 @@ -replicaCount: 2 - -podAnnotations: - dapr.io/app-id: "prod-hipster" - dapr.io/enabled: "true" - dapr.io/app-port: "8000" - dapr.io/config: "tracing" - dapr.io/app-protocol: "http" - dapr.io/enable-app-health-check: "true" - dapr.io/app-health-check-path: "/healthz" - dapr.io/app-health-probe-interval: "3" - dapr.io/app-health-probe-timeout: "200" - dapr.io/app-health-threshold: "2" - dapr.io/sidecar-cpu-request: "100m" - dapr.io/sidecar-memory-request: "250Mi" - dapr.io/sidecar-cpu-limit: "300m" - dapr.io/sidecar-memory-limit: "1000Mi" - dapr.io/log-as-json: "true" - -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - oceanbox.io/expose: internal diff --git a/attic/values/hipster/values-staging.yaml b/attic/values/hipster/values-staging.yaml deleted file mode 100644 index 35ee5c5a..00000000 --- a/attic/values/hipster/values-staging.yaml +++ /dev/null @@ -1,23 +0,0 @@ -replicaCount: 1 -image: - tag: fddb3a25-debug -podAnnotations: - dapr.io/app-id: "staging-hipster" - dapr.io/enabled: "true" - dapr.io/app-port: "8000" - dapr.io/config: "tracing" - dapr.io/app-protocol: "http" - dapr.io/enable-app-health-check: "true" - dapr.io/app-health-check-path: "/healthz" - dapr.io/app-health-probe-interval: "3" - dapr.io/app-health-probe-timeout: "200" - dapr.io/app-health-threshold: "2" - dapr.io/sidecar-cpu-request: "100m" - dapr.io/sidecar-memory-request: "250Mi" - dapr.io/sidecar-cpu-limit: "300m" - dapr.io/sidecar-memory-limit: "1000Mi" - dapr.io/log-as-json: "true" -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-staging - oceanbox.io/expose: internal diff --git a/attic/values/jaeger/values.yaml b/attic/values/jaeger/values.yaml deleted file mode 100644 index 624391de..00000000 --- a/attic/values/jaeger/values.yaml +++ /dev/null @@ -1,3 +0,0 @@ -rbac: - create: true - clusterRole: true diff --git a/attic/values/petimeter/base/deployment_patch.yaml b/attic/values/petimeter/base/deployment_patch.yaml deleted file mode 100644 index c8368399..00000000 --- a/attic/values/petimeter/base/deployment_patch.yaml +++ /dev/null @@ -1,9 +0,0 @@ -- op: replace - path: /spec/template/spec/containers/0/livenessProbe/httpGet/path - value: /healthz -- op: replace - path: /spec/template/spec/containers/0/readinessProbe/httpGet/path - value: /healthz -- op: add - path: /spec/template/spec/containers/0/envFrom - value: [] diff --git a/attic/values/petimeter/base/kustomization.yaml b/attic/values/petimeter/base/kustomization.yaml deleted file mode 100644 index 5c9e9679..00000000 --- a/attic/values/petimeter/base/kustomization.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -patches: - - target: - version: v1 - group: apps - kind: Deployment - path: deployment_patch.yaml -resources: - - _manifest.yaml diff --git a/attic/values/petimeter/chart b/attic/values/petimeter/chart deleted file mode 100644 index 27b1b60c..00000000 --- a/attic/values/petimeter/chart +++ /dev/null @@ -1 +0,0 @@ -oceanbox/petimeter diff --git a/attic/values/petimeter/prod/appsettings.json b/attic/values/petimeter/prod/appsettings.json deleted file mode 100644 index 0a15ad17..00000000 --- a/attic/values/petimeter/prod/appsettings.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "oidc": { - "issuer": "https://idp.oceanbox.io/dex", - "authorization_endpoint": "https://idp.oceanbox.io/dex/auth", - "token_endpoint": "https://idp.oceanbox.io/dex/token", - "jwks_uri": "https://idp.oceanbox.io/dex/keys", - "userinfo_endpoint": "https://idp.oceanbox.io/dex/userinfo", - "device_authorization_endpoint": "https://idp.oceanbox.io/dex/device/code", - "clientId": "petimeter", - "clientSecret": "", - "scopes": [ - "openid", - "email", - "offline_access", - "profile" - ] - }, - "sso": { - "cookieDomain": ".oceanbox.io", - "signedOutRedirectUri": "https://idp.oceanbox.io/dex/static/logout.html", - "redis": "prod-redis-master.redis.svc,user=default,password=secret", - "appDomain": "atlantis", - "dataProtectionKeys": "DataProtection-Keys" - }, - "allowedOrigins": [ - "https://maps.oceanbox.io", - "https://atlantis.srv.oceanbox.io" - ], - "logService" : "https://seq.adm.oceanbox.io", - "logApiKey": "", - "deployEnv": "prod" -} diff --git a/attic/values/petimeter/prod/default.env b/attic/values/petimeter/prod/default.env deleted file mode 100644 index f025760d..00000000 --- a/attic/values/petimeter/prod/default.env +++ /dev/null @@ -1,2 +0,0 @@ -OIDC_CLIENT_SECRET=kkrKo3mmmseMnorf9qw3eklefkoOKFNs -SEQ_APIKEY=jxkOkWGvN2Cro8C7pwm4 diff --git a/attic/values/petimeter/prod/deployment_patch.yaml b/attic/values/petimeter/prod/deployment_patch.yaml deleted file mode 100644 index 77d1f475..00000000 --- a/attic/values/petimeter/prod/deployment_patch.yaml +++ /dev/null @@ -1,23 +0,0 @@ -- op: replace - path: /spec/template/spec/containers/0/env/0 - value: - name: LOG_LEVEL - value: "4" -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_USER - value: default -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: prod-redis - key: redis-password -- op: add - path: /spec/template/spec/containers/0/envFrom/- - value: - secretRef: - name: prod-petimeter-env diff --git a/attic/values/petimeter/prod/kustomization.yaml b/attic/values/petimeter/prod/kustomization.yaml deleted file mode 100644 index 499ca4c7..00000000 --- a/attic/values/petimeter/prod/kustomization.yaml +++ /dev/null @@ -1,18 +0,0 @@ -generatorOptions: - disableNameSuffixHash: true -configMapGenerator: -- name: prod-petimeter-appsettings - files: - - appsettings.json -secretGenerator: -- name: prod-petimeter-env - envs: - - default.env -patches: - - target: - group: apps - version: v1 - kind: Deployment - path: deployment_patch.yaml -resources: - - ../base diff --git a/attic/values/petimeter/staging/appsettings.json b/attic/values/petimeter/staging/appsettings.json deleted file mode 100644 index 95d4d460..00000000 --- a/attic/values/petimeter/staging/appsettings.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "oidc": { - "issuer": "https://idp.oceanbox.io/dex", - "authorization_endpoint": "https://idp.oceanbox.io/dex/auth", - "token_endpoint": "https://idp.oceanbox.io/dex/token", - "jwks_uri": "https://idp.oceanbox.io/dex/keys", - "userinfo_endpoint": "https://idp.oceanbox.io/dex/userinfo", - "device_authorization_endpoint": "https://idp.oceanbox.io/dex/device/code", - "clientId": "petimeter_dev", - "clientSecret": "", - "scopes": [ - "openid", - "email", - "offline_access", - "profile" - ] - }, - "sso": { - "cookieDomain": ".oceanbox.io", - "signedOutRedirectUri": "https://idp.oceanbox.io/dex/static/logout.html", - "redis": "staging-redis-master.redis.svc,user=default,password=secret", - "appDomain": "atlantis", - "dataProtectionKeys": "DataProtection-Keys" - }, - "allowedOrigins": [ - "https://atlantis.srv.oceanbox.io", - "https://maps.oceanbox.io", - "https://atlantis.srv.oceanbox.io", - "https://atlantis.local.oceanbox.io:8080" - ], - "logService" : "https://seq.adm.oceanbox.io", - "logApiKey": "", - "deployEnv": "staging" -} diff --git a/attic/values/petimeter/staging/default.env b/attic/values/petimeter/staging/default.env deleted file mode 100644 index 6db814ab..00000000 --- a/attic/values/petimeter/staging/default.env +++ /dev/null @@ -1,2 +0,0 @@ -OIDC_CLIENT_SECRET=kfngKJF9EKVBnnvgkdmPfs0qw3rmjslk -SEQ_APIKEY=jxkOkWGvN2Cro8C7pwm4 diff --git a/attic/values/petimeter/staging/deployment_patch.yaml b/attic/values/petimeter/staging/deployment_patch.yaml deleted file mode 100644 index 192dc380..00000000 --- a/attic/values/petimeter/staging/deployment_patch.yaml +++ /dev/null @@ -1,23 +0,0 @@ -- op: replace - path: /spec/template/spec/containers/0/env/0 - value: - name: LOG_LEVEL - value: "4" -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_USER - value: default -- op: add - path: /spec/template/spec/containers/0/env/- - value: - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: staging-redis - key: redis-password -- op: add - path: /spec/template/spec/containers/0/envFrom/- - value: - secretRef: - name: staging-petimeter-env diff --git a/attic/values/petimeter/staging/kustomization.yaml b/attic/values/petimeter/staging/kustomization.yaml deleted file mode 100644 index e4c181c4..00000000 --- a/attic/values/petimeter/staging/kustomization.yaml +++ /dev/null @@ -1,18 +0,0 @@ -generatorOptions: - disableNameSuffixHash: true -configMapGenerator: -- name: staging-petimeter-appsettings - files: - - appsettings.json -secretGenerator: -- name: staging-petimeter-env - envs: - - default.env -patches: - - target: - group: apps - version: v1 - kind: Deployment - path: deployment_patch.yaml -resources: - - ../base diff --git a/attic/values/petimeter/values-prod.yaml b/attic/values/petimeter/values-prod.yaml deleted file mode 100644 index 2943a48e..00000000 --- a/attic/values/petimeter/values-prod.yaml +++ /dev/null @@ -1,32 +0,0 @@ -replicaCount: 2 - -podAnnotations: - dapr.io/app-id: "prod-petimeter" - dapr.io/enabled: "true" - dapr.io/app-port: "8000" - dapr.io/config: "tracing" - dapr.io/app-protocol: "http" - dapr.io/enable-app-health-check: "true" - dapr.io/app-health-check-path: "/healthz" - dapr.io/app-health-probe-interval: "3" - dapr.io/app-health-probe-timeout: "200" - dapr.io/app-health-threshold: "2" - dapr.io/sidecar-cpu-request: "100m" - dapr.io/sidecar-memory-request: "250Mi" - dapr.io/sidecar-cpu-limit: "300m" - dapr.io/sidecar-memory-limit: "1000Mi" - dapr.io/log-as-json: "true" - -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - nginx.ingress.kubernetes.io/proxy-buffer-size: 128k - hosts: - - host: petimeter.srv.oceanbox.io - paths: - - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - petimeter.srv.oceanbox.io - secretName: prod-petimeter-tls diff --git a/attic/values/petimeter/values-staging.yaml b/attic/values/petimeter/values-staging.yaml deleted file mode 100644 index 1ad8668d..00000000 --- a/attic/values/petimeter/values-staging.yaml +++ /dev/null @@ -1,33 +0,0 @@ -replicaCount: 1 -podAnnotations: - dapr.io/app-id: "staging-petimeter" - dapr.io/enabled: "true" - dapr.io/app-port: "8000" - dapr.io/config: "tracing" - dapr.io/app-protocol: "http" - dapr.io/enable-app-health-check: "true" - dapr.io/app-health-check-path: "/healthz" - dapr.io/app-health-probe-interval: "3" - dapr.io/app-health-probe-timeout: "200" - dapr.io/app-health-threshold: "2" - dapr.io/sidecar-cpu-request: "100m" - dapr.io/sidecar-memory-request: "250Mi" - dapr.io/sidecar-cpu-limit: "300m" - dapr.io/sidecar-memory-limit: "1000Mi" - dapr.io/log-as-json: "true" -image: - tag: 2da3ce09-debug -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-staging - nginx.ingress.kubernetes.io/proxy-buffer-size: 128k - # oceanbox.io/expose: internal - hosts: - - host: petimeter.beta.oceanbox.io - paths: - - path: / - pathType: ImplementationSpecific - tls: - - hosts: - - petimeter.beta.oceanbox.io - secretName: staging-petimeter-tls diff --git a/attic/values/seq/values.yaml b/attic/values/seq/values.yaml deleted file mode 100644 index e877cad3..00000000 --- a/attic/values/seq/values.yaml +++ /dev/null @@ -1,122 +0,0 @@ -acceptEULA: "Y" - -# Set this URL if you enable ingress and/or AAD authentication. -# Without this URL set to include HTTPS, Seq will try to set a login redirect -# URL with HTTP instead of HTTPS and AAD's registration requires HTTPS. -# The result is that you'll get an error during login: -# AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application -# baseURI: https://my.public.url/ - -# Set this to create an admin user with given password hash at first run. -# See here for docs on how to create the password hash: https://blog.datalust.co/setting-an-initial-password-when-deploying-seq-to-docker/ -# firstRunAdminUsername: "admin" -# firstRunAdminPasswordHash: "" -# firstRunRequireAuthenticationForHttpIngestion: true - -# The complete Seq API and UI. -# This API can accept events and serve API requests. -ui: - service: - port: 80 - ingress: - enabled: true - path: / - hosts: - - seq.adm.oceanbox.io - -# The ingestion-only API. -# This API is a subset of ui that can only ingest events. -ingestion: - service: - port: 5341 - ingress: - enabled: false - path: / - hosts: - - ingestion.seq.adm.oceanbox.io - -# Accept events in the GELF format and forward them to Seq. -gelf: - enabled: false - image: - repository: datalust/seq-input-gelf - pullPolicy: IfNotPresent - service: - port: 12201 - # GELF can be ingested through either TCP or UDP - protocol: TCP - -# Accept events in the Syslog format and forward them to Seq. -syslog: - enabled: false - image: - repository: datalust/seq-input-syslog - pullPolicy: IfNotPresent - service: - port: 514 - # Only UDP is currently supported for ingesting Syslog - protocol: UDP - -service: - type: ClusterIP - -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - kubernetes.io/ingress.class: nginx - oceanbox.io/expose: internal - tls: - - secretName: seq-tls - hosts: - - seq.adm.oceanbox.io - labels: {} - -resources: - limits: - memory: 2Gi - -cache: - # The fraction of RAM that the cache should try fit within. Specifying a larger - # value may allow more events in RAM at the expense of potential instability. - # Setting it to `0` will disable the cache completely. - # 60% (`0.6`) is a good starting point for machines with up to ~8GB of RAM. - targetSize: 0.6 - -persistence: - enabled: true - path: /data - subPath: "" - accessMode: ReadWriteOnce - size: 8Gi - -serviceAccount: - create: false - name: - -## Enable RBAC -rbac: - create: false - rules: [] - -livenessProbe: - enabled: true - failureThreshold: 3 - initialDelaySeconds: 0 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - -readinessProbe: - enabled: true - failureThreshold: 3 - initialDelaySeconds: 0 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - -startupProbe: - enabled: true - failureThreshold: 30 - periodSeconds: 10 - -