Skip to content

feat: CI: validate-dashboards#904

Draft
hervenicol wants to merge 9 commits into
mainfrom
ci-validate-dashboards
Draft

feat: CI: validate-dashboards#904
hervenicol wants to merge 9 commits into
mainfrom
ci-validate-dashboards

Conversation

@hervenicol

@hervenicol hervenicol commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Towards https://github.com/giantswarm/giantswarm/issues/36801

This PR adds two CI jobs that checks dashboard validity and owners.
Non-blocking, but listing errors in a comment on the PR.

Checklist

  • Update changelog in CHANGELOG.md in an end-user friendly language.

@hervenicol hervenicol self-assigned this Jun 4, 2026
@hervenicol hervenicol force-pushed the ci-validate-dashboards branch from 4d4630a to faa2d97 Compare June 4, 2026 20:34
@hervenicol hervenicol changed the title CI: run validate-dashboards feat: CI: validate-dashboards Jun 4, 2026
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

❌ Dashboard checks failed

Lint — lint-dashboards

  • helm/dashboards/charts/team_tenet/dashboards/Giant Swarm/Etcd/etcd.json:
    • [❌] Dashboard 'Management cluster etcd' is editable, it should be set to 'editable: false'
  • helm/dashboards/charts/team_tenet/dashboards/Giant Swarm/Operators/kube-builder.json:
    • [❌] Dashboard 'Kube-Builder Operators' templated data source variable named 'datasource', should be named 'prometheus_datasource'
    • [⚠️] Dashboard 'Kube-Builder Operators' templated data source variable labeled 'Data source', should be labeled 'Prometheus data source'
    • [❌] Dashboard 'Kube-Builder Operators' templated data source variable named 'LogsDS', should be named 'loki_datasource'
    • [⚠️] Dashboard 'Kube-Builder Operators' templated data source variable labeled 'Logs datasource', should be labeled 'Loki data source'
    • [❌] Dashboard 'Kube-Builder Operators' is editable, it should be set to 'editable: false'
  • helm/dashboards/charts/team_tenet/dashboards/Giant Swarm/Kubernetes-dev/persistentvolume.json:
    • [❌] Dashboard 'Giant Swarm / Kubernetes Persistent Volumes' is editable, it should be set to 'editable: false'
  • helm/dashboards/charts/team_tenet/dashboards/Giant Swarm/Kubernetes-dev/api-performance.json:
    • [❌] Dashboard 'K8s API performance' is editable, it should be set to 'editable: false'
  • helm/dashboards/charts/team_tenet/dashboards/Giant Swarm/Kubernetes-dev/kubernetes-api-uptime.json:
    • [❌] Dashboard 'Kubernetes API uptime' is editable, it should be set to 'editable: false'
  • helm/dashboards/charts/team_tenet/dashboards/Shared Org/Kubernetes/api-audit.json:
    • [❌] Dashboard 'API audit' is editable, it should be set to 'editable: false'
  • helm/dashboards/charts/team_tenet/dashboards/Shared Org/Kubernetes/unschedulable-pods.json:
    • [❌] Dashboard 'Unschedulable pods', panel 'Unschedulable pods' does not use a templated datasource, uses 'gs-mimir'
    • [❌] Dashboard 'Unschedulable pods' does not have a templated data source
    • [❌] Dashboard 'Unschedulable pods' is editable, it should be set to 'editable: false'
  • helm/dashboards/charts/team_tenet/dashboards/Shared Org/Kubernetes/Mixin/pod-total.json:
    • [❌] Dashboard 'Kubernetes / Networking / Pod', panel 'Receive Bandwidth' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Networking / Pod', panel 'Transmit Bandwidth' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Networking / Pod', panel 'Rate of Received Packets' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Networking / Pod', panel 'Rate of Transmitted Packets' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Networking / Pod', panel 'Rate of Received Packets Dropped' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Networking / Pod', panel 'Rate of Transmitted Packets Dropped' does not use a templated datasource, uses '-- Mixed --'
  • helm/dashboards/charts/team_tenet/dashboards/Shared Org/Kubernetes/Mixin/k8s-resources-cluster.json:
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'CPU Usage' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'CPU Quota' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Memory' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Memory Requests by Namespace' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Current Network Usage' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Receive Bandwidth' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Transmit Bandwidth' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Average Container Bandwidth by Namespace: Received' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Average Container Bandwidth by Namespace: Transmitted' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Rate of Received Packets' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Rate of Transmitted Packets' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Rate of Received Packets Dropped' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Rate of Transmitted Packets Dropped' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'IOPS(Reads+Writes)' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'ThroughPut(Read+Write)' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Cluster', panel 'Current Storage IO' does not use a templated datasource, uses '-- Mixed --'
  • helm/dashboards/charts/team_tenet/dashboards/Shared Org/Kubernetes/Mixin/k8s-resources-pod.json:
    • [❌] Dashboard 'Kubernetes / Compute Resources / Pod', panel 'CPU Usage' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Pod', panel 'CPU Throttling' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Pod', panel 'CPU Quota' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Pod', panel 'Memory Usage (WSS)' does not use a templated datasource, uses '-- Mixed --'
    • [❌] Dashboard 'Kubernetes / Compute Resources / Pod', panel 'Memory Quota' does not use a templated datasource, uses '-- Mixed --'

…and 650 more line(s) truncated. See the lint-dashboards job log for the full list.

Owner / uid — validate-dashboards

  • helm/dashboards/charts/team_tenet/dashboards/Giant Swarm/Operators/kube-builder.json: Owner tag missing
  • helm/dashboards/charts/team_tenet/dashboards/Shared Org/Kubernetes/api-audit.json: Owner tag missing
  • helm/dashboards/charts/team_tenet/dashboards/Shared Org/Kubernetes/Mixin/statefulset.json: Owner team(s) invalid: team-ludacris
  • helm/dashboards/charts/team_phoenix/dashboards/provider/capa/Shared Org/Cloud Provider/AWS/aws-load-balancer-controller.json: Owner tag missing
  • helm/dashboards/charts/team_phoenix/dashboards/Giant Swarm/Etcd/etcd-health.json: Owner tag missing
  • helm/dashboards/charts/team_phoenix/dashboards/Giant Swarm/Kubernetes/k8s-core-components-errors.json: Owner tag missing
  • helm/dashboards/charts/team_honeybadger/dashboards/Giant Swarm/GitOps/konfigure-operator.json: Owner tag missing
  • helm/dashboards/charts/team_honeybadger/dashboards/Giant Swarm/Secrets/external-secrets.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Giant Swarm/Network/network-anomaly-detection.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Giant Swarm/Network/cilium-agent-logs.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Giant Swarm/Network/external-dns.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Giant Swarm/Ingress/nginx-admission.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Network/cilium-performance.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Envoy Gateway/envoy-gateway-global.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Envoy Gateway/envoy-vs-nginx-loadtesting.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Envoy Gateway/envoy-clusters.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Envoy Gateway/envoy-proxy-global.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Envoy Gateway/envoy-config-stats.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Envoy Gateway/envoy-vs-kong-loadtesting.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/k6-tests-results.json: Owner tag missing
  • helm/dashboards/charts/team_cabbage/dashboards/Shared Org/Ingress/kong-ingress-controller.json: Owner tag missing
  • helm/dashboards/charts/team_atlas/dashboards/Giant Swarm/Observability/observability-platform-cost-estimate.json: Owner tag missing
  • helm/dashboards/charts/team_atlas/dashboards/Shared Org/Observability/Loki/loki-log-volume.json: Owner tag missing

These checks are failing. Fix the issues above and push again.

@hervenicol hervenicol force-pushed the ci-validate-dashboards branch from 820e3ea to ca3ee82 Compare June 5, 2026 05:29
Comment thread .github/workflows/validate-dashboards.yaml Outdated
Comment thread .github/workflows/validate-dashboards.yaml Outdated
Comment thread .github/workflows/validate-dashboards.yaml Outdated
Comment thread .github/workflows/validate-dashboards.yaml Outdated
Comment thread .github/workflows/validate-dashboards.yaml Outdated
Comment thread .github/workflows/validate-dashboards.yaml Outdated
Comment thread scripts/lint-dashboards.sh Outdated
Comment thread scripts/validate-dashboards.sh Outdated
Comment thread scripts/validate-dashboards.sh Outdated
Comment thread scripts/validate-dashboards.sh Outdated
@hervenicol

Copy link
Copy Markdown
Contributor Author

I updated the code according to your comments @TheoBrigitte .

However, unfortunately dashboard-linter does not support dashboards v2.
I tried adding it here: grafana/dashboard-linter#261 but the repo seems quite stale, so I'm not sure how much we should build on it.

@hervenicol hervenicol force-pushed the ci-validate-dashboards branch from 6e8f98a to 804bb73 Compare June 8, 2026 08:32
@hervenicol hervenicol force-pushed the ci-validate-dashboards branch from 804bb73 to b3e1efd Compare June 9, 2026 08:06
@hervenicol hervenicol force-pushed the ci-validate-dashboards branch from b3e1efd to 7e4179d Compare June 12, 2026 14:47
@hervenicol hervenicol mentioned this pull request Jun 12, 2026
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants