Commit Graph

45 Commits

Author SHA1 Message Date
Ryan McKinley 5c5ecac6ee
Provisioning: Ensure name and email are always set for the AuthorSignature (#112594)
* all properties

* lint
2025-10-20 08:45:02 +00:00
Ryan McKinley f1e456eb01
Provisioning: Watch file system for changes (#112184)
* trigger sync on any change

* better comments

* add deletes to test

* Update apps/provisioning/pkg/repository/local/watch.go

* Update pkg/services/provisioning/dashboards/file_reader.go

* Update apps/provisioning/pkg/repository/local/watch.go

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-10-10 17:26:59 +00:00
Stephanie Hingtgen 047c51be01
Provisioning: Do full sync on resync period when needed (#112144) 2025-10-08 05:25:57 -06:00
Stephanie Hingtgen d5d1851bc1
Provisioning: Cleanup folders properly with webhooks (#112031) 2025-10-04 21:17:42 +00:00
Ryan McKinley 2486dba881
Provisioning: use kind consistently for provisioning stats (#111977)
Actionlint / Lint GitHub Actions files (push) Waiting to run Details
Backend Code Checks / Detect whether code changed (push) Waiting to run Details
Backend Code Checks / Validate Backend Configs (push) Blocked by required conditions Details
Backend Unit Tests / Detect whether code changed (push) Waiting to run Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (1/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (2/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (3/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (4/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (5/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (6/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (7/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana (${{ matrix.shard }}) (8/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (1/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (2/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (3/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (4/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (5/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (6/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (7/8) (push) Blocked by required conditions Details
Backend Unit Tests / Grafana Enterprise (${{ matrix.shard }}) (8/8) (push) Blocked by required conditions Details
Backend Unit Tests / All backend unit tests complete (push) Blocked by required conditions Details
CodeQL checks / Detect whether code changed (push) Waiting to run Details
CodeQL checks / Analyze (actions) (push) Blocked by required conditions Details
CodeQL checks / Analyze (go) (push) Blocked by required conditions Details
CodeQL checks / Analyze (javascript) (push) Blocked by required conditions Details
Lint Frontend / Detect whether code changed (push) Waiting to run Details
Lint Frontend / Lint (push) Blocked by required conditions Details
Lint Frontend / Typecheck (push) Blocked by required conditions Details
Lint Frontend / Verify API clients (push) Waiting to run Details
Lint Frontend / Verify API clients (enterprise) (push) Waiting to run Details
golangci-lint / Detect whether code changed (push) Waiting to run Details
golangci-lint / go-fmt (push) Blocked by required conditions Details
golangci-lint / lint-go (push) Blocked by required conditions Details
Verify i18n / verify-i18n (push) Waiting to run Details
End-to-end tests / Detect whether code changed (push) Waiting to run Details
End-to-end tests / Build & Package Grafana (push) Blocked by required conditions Details
End-to-end tests / Build E2E test runner (push) Blocked by required conditions Details
End-to-end tests / push-docker-image (push) Blocked by required conditions Details
End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/dashboards-suite, dashboards-suite (old arch)) (push) Blocked by required conditions Details
End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/panels-suite, panels-suite (old arch)) (push) Blocked by required conditions Details
End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/smoke-tests-suite, smoke-tests-suite (old arch)) (push) Blocked by required conditions Details
End-to-end tests / ${{ matrix.suite }} (--flags="--env dashboardScene=false", e2e/old-arch/various-suite, various-suite (old arch)) (push) Blocked by required conditions Details
End-to-end tests / Verify Storybook (Playwright) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (1, 8) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (2, 8) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (3, 8) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (4, 8) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (5, 8) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (6, 8) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (7, 8) (push) Blocked by required conditions Details
End-to-end tests / Playwright E2E tests (${{ matrix.shard }}/${{ matrix.shardTotal }}) (8, 8) (push) Blocked by required conditions Details
End-to-end tests / run-azure-monitor-e2e (push) Blocked by required conditions Details
End-to-end tests / All Playwright tests complete (push) Blocked by required conditions Details
End-to-end tests / A11y test (push) Blocked by required conditions Details
End-to-end tests / Publish metrics (push) Blocked by required conditions Details
End-to-end tests / All E2E tests complete (push) Blocked by required conditions Details
Frontend tests / Detect whether code changed (push) Waiting to run Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (1, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (10, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (11, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (12, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (13, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (14, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (15, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (16, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (2, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (3, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (4, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (5, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (6, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (7, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (8, 16) (push) Blocked by required conditions Details
Frontend tests / Unit tests (${{ matrix.shard }} / ${{ matrix.total }}) (9, 16) (push) Blocked by required conditions Details
Frontend tests / Decoupled plugin tests (push) Blocked by required conditions Details
Frontend tests / Packages unit tests (push) Blocked by required conditions Details
Frontend tests / All frontend unit tests complete (push) Blocked by required conditions Details
Integration Tests / Detect whether code changed (push) Waiting to run Details
Integration Tests / Sqlite (${{ matrix.shard }}) (1/4) (push) Blocked by required conditions Details
Integration Tests / Sqlite (${{ matrix.shard }}) (2/4) (push) Blocked by required conditions Details
Integration Tests / Sqlite (${{ matrix.shard }}) (3/4) (push) Blocked by required conditions Details
Integration Tests / Sqlite (${{ matrix.shard }}) (4/4) (push) Blocked by required conditions Details
Integration Tests / Sqlite Without CGo (${{ matrix.shard }}) (1/4) (push) Blocked by required conditions Details
Integration Tests / Sqlite Without CGo (${{ matrix.shard }}) (2/4) (push) Blocked by required conditions Details
Integration Tests / Sqlite Without CGo (${{ matrix.shard }}) (3/4) (push) Blocked by required conditions Details
Integration Tests / Sqlite Without CGo (${{ matrix.shard }}) (4/4) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (1/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (10/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (11/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (12/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (13/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (14/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (15/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (16/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (2/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (3/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (4/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (5/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (6/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (7/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (8/16) (push) Blocked by required conditions Details
Integration Tests / MySQL (${{ matrix.shard }}) (9/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (1/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (10/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (11/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (12/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (13/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (14/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (15/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (16/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (2/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (3/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (4/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (5/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (6/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (7/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (8/16) (push) Blocked by required conditions Details
Integration Tests / Postgres (${{ matrix.shard }}) (9/16) (push) Blocked by required conditions Details
Integration Tests / All backend integration tests complete (push) Blocked by required conditions Details
Reject GitHub secrets / reject-gh-secrets (push) Waiting to run Details
Run dashboard schema v2 e2e / dashboard-schema-v2-e2e (push) Waiting to run Details
Shellcheck / Shellcheck scripts (push) Waiting to run Details
Run Storybook a11y tests / Detect whether code changed (push) Waiting to run Details
Run Storybook a11y tests / Run Storybook a11y tests (push) Blocked by required conditions Details
Swagger generated code / Detect whether code changed (push) Waiting to run Details
Swagger generated code / Verify committed API specs match (push) Blocked by required conditions Details
Dispatch sync to mirror / dispatch-job (push) Waiting to run Details
2025-10-04 09:02:02 -05:00
Stephanie Hingtgen 3ce9137c19
Provisioning: Refactor to combine validation and test endpoint logic (#111965)
Provisioning: Refactor test endpoint
2025-10-03 01:16:37 -06:00
Stephanie Hingtgen 044407d9dc
Provisioning: Allow configurable min interval (#111920) 2025-10-02 09:05:09 +03:00
Stephanie Hingtgen 6f0a8a344a
Provisioning: Fix repos stuck in deletion (#111918) 2025-10-02 09:04:55 +03:00
Costa Alexoglou 1b766b9c9f
Provisioning finalisers fix 2 (#111679)
* adding some logs to better understand what might be happening

* only focus this PR on improve logging in finalizer handling

* debug log before calling finalizers

* working on finalizers

* removing last todos, adding unit tests

* better use SupportedFinalizers name

* addressing comments

* wip: fix tests and add delete error in status

* chore: codegen

* chore: codegen openapi

* Merge remote-tracking branch 'origin/main' into provisioning-finalisers-fix-2

* update frontend client

* fix: errors in testing

* fix: breaking test

---------

Co-authored-by: Daniele Ferru <daniele.ferru@grafana.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-09-29 15:21:12 +02:00
Costa Alexoglou 31ae013e8d
chore: add validations to test endpoint (#111622)
* chore: add validations to test endpoint

* Validate path

---------

Co-authored-by: Clarity-89 <homes89@ukr.net>
2025-09-25 15:10:13 +00:00
Charandas 64c700e563
Provisioning: kind name should be singular (#111570) 2025-09-24 15:25:41 -07:00
Costa Alexoglou 0c0554da5e
fix: avoid child paths in repositories (#111573)
* fix: avoid child paths in repositories

* add another unit test; fix linter

* Update pkg/registry/apis/provisioning/register.go

* skip itself

* fix: failing tests

---------

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2025-09-24 21:35:06 +00:00
Stephanie Hingtgen 8b1caccc72
Provisioning: Add metrics for repo controller (#111450) 2025-09-22 20:14:03 +00:00
Stephanie Hingtgen bd550d2f06
Provisioning: Wire up prometheus (#111444) 2025-09-22 09:54:50 -05:00
Stephanie Hingtgen 15ee224da5
Provisioning: Allow disabling of image rendering instance wide (#111359) 2025-09-19 12:40:14 +03:00
Stephanie Hingtgen cb11bc15fa
Provisioning: Allow disabling of instance sync (#111270)
---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2025-09-18 10:40:02 -05:00
Costa Alexoglou 0248a393d7
fix: dashboard upsert with empty ref (#111190)
* fix: dashboard upsert with empty ref

* chore: cleanup

* fix: branches in other git providers and linter
2025-09-17 11:49:15 +02:00
Ryan McKinley 0a79b3bdc5
Chore: Upgrade k8s.io/api v0.34.1 and grafana-app-sdk v0.43.1 (#111009) 2025-09-16 13:35:20 +03:00
Daniele Stefano Ferru 1f7afc6b6a
Provisioning: add unit and integration tests for finalizer validation (#111012)
* Add unit testS

* add integration tests
2025-09-12 13:57:31 +02:00
Daniele Stefano Ferru 6b2b949f8f
Provisioning: check finalizers when validating Repository object (#110955) 2025-09-11 21:38:41 -05:00
Roberto Jiménez Sánchez 09ef9c8176
Provisioning: Remove again dependency cycle between provisioning app and grafana (#110863)
* Remove dependency cycle between provisioning app and grafana

* Format code

* Fix linting
2025-09-10 14:40:44 +02:00
Stephanie Hingtgen 323738d191
Provisioning: Fix check of who can update (#110835) 2025-09-10 09:04:10 +03:00
Stephanie Hingtgen 8805e93b1d
Provisioning: Add better nil check (#110847) 2025-09-09 18:23:11 -05:00
Roberto Jiménez Sánchez acbc2cf01a
Provisioning: Configurable Repository Types in monolith and operators (#110822)
* Configurable repository types in monolith and operator

* Default to Github in operators

* Regenerate wire

* Fix and implement unit tests

* Same types for enterprise tests

* Remove unnecessary conversion

* Remove the issue with import cycles
2025-09-09 19:13:22 +02:00
Daniele Stefano Ferru 76f7836419
Provisioning: correctly use resource clients in controllers (#110737)
* Provisioning: correctly use resource clients in controllers

* better names on fields

* fix struct initialisation

* updating roundtripper tests
2025-09-06 18:13:39 -06:00
Stephanie Hingtgen 9ddc70423b
Provisioning: Cleanup tester interface (#110640)
* Provisioning: Cleanup tester interface

* undo accidental change

* cleanup

* cleanup test
2025-09-05 07:47:27 +02:00
Stephanie Hingtgen b567cde3d3
Provisioning: Reuse controller from registry (#110639) 2025-09-05 01:13:55 +00:00
Roberto Jiménez Sánchez 3d009ff7ed
Provisioning: Build and use repository factory in repository controller (#110585)
Build and use repository factory
2025-09-04 13:12:56 +02:00
Roberto Jiménez Sánchez 7d630ec3b1
Provisioning: Refactor tweaks to support MT controllers (#110581)
* Refactor common code to support MT controllers

* Delete original status files
2025-09-04 10:06:50 +00:00
Stephanie Hingtgen 84ae9ea71b
Provisioning: Add scaffolding for repo controller (#110543) 2025-09-03 17:30:41 +00:00
Matheus Macabu 1e926a29c0
Secrets: Extract external facing decrypt types to apps (#110432) 2025-09-02 10:30:29 +02:00
Roberto Jiménez Sánchez 4eadc823a9
Provisioning: Move repository package to provisioning app (#110228)
* Move repository package to apps

* Move operators to grafana/grafana

* Go mod tidy

* Own package by git sync team for now

* Merged

* Do not use settings in local extra

* Remove dependency on webhook extra

* Hack to work around issue with secure contracts

* Sync Go modules

* Revert "Move operators to grafana/grafana"

This reverts commit 9f19b30a2e.
2025-09-02 09:45:44 +02:00
Roberto Jiménez Sánchez 4de9ec7310
Provisioning: Fix import cycle between grafana and provisioning app (#110406)
* Move operators to grafana/grafana

* Go mod tidy
2025-09-01 13:29:34 +00:00
Stephanie Hingtgen 232d68fb8c
Controllers: Make available as a target (#110357)
* Controllers: Add to build process
* Allow setting through env variables
2025-08-30 12:27:50 +02:00
Roberto Jiménez Sánchez 93a35fc7be
Provisioning: Move apifmt, loki and safepath to provisioning app (#110226)
* Move apifmt

* Move safepath

* Move Loki package

* Regenerate Loki mock

* Missing file for Loki
2025-08-27 13:26:48 -05:00
Roberto Jiménez Sánchez e7ccefcf92
Provisioning: Add Standalone Job Controller Without Job Processing (#109610)
* Add standalone job controller
* Add makefile
* Add limit on the current implementation
* Move job controllers to app package
* Add TLS flags
2025-08-25 08:48:40 +00:00
Ryan McKinley ce65391067
Provisioning: Use inline secrets for gitsync (#109908)
Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: Roberto Jimenez Sanchez <roberto.jimenez@grafana.com>
2025-08-22 18:38:28 +02:00
Roberto Jiménez Sánchez 61d137992b
Provisioning: Mark repository as unhealthy if hooks fail (#109788) 2025-08-21 08:32:23 +00:00
Ryan McKinley fa81fae1e3
Provisioning: Add inline secure values to repository schema (#109594) 2025-08-20 09:05:41 +00:00
Roberto Jiménez Sánchez f2303a8ad9
Provisioning: Include Ref URLs in Job Status (#109464)
* Add URLs to Job spec

* Rename them as RefURLs

* Implement RefURLs for Github

* Add Ref URLs to Jobs

* Worker Test

* Create the branch in the staged writer

* Regenerate Git mock

* Format code

* Consolidate ResourceURLs and RefURLs into one

* Fix broken tests
2025-08-12 11:57:37 +02:00
Roberto Jiménez Sánchez 8a690e977e
Provisioning: Return unmanaged count in stats (#109462)
* Unmanaged counts

* Add integration test

* Generate open api spec
2025-08-12 09:17:25 +02:00
Ryan McKinley 439d4d383c
Provisioning: Hide HistoricJobs from OpenAPI spec (#109454)
histtoric jobs
2025-08-11 10:47:33 +00:00
Roberto Jiménez Sánchez f80627f228
Provisioning: Store Recent Jobs Temporarilly in Unified Storage (#109392)
* Add HistoryJob back to Spec

* Generate client

* Put back History Jobs

* Add a controller to remove historic jobs after some minutes

* Start only if Loki is not used

* Format code

* Update OpenAPI spec

* Change log level

* Fix condition

* Fix staticcheck

* Use provisioning identity

* Fix registration APIs

* Fix readonly issue

* Update OpenAPI
2025-08-11 13:10:15 +03:00
Roberto Jiménez Sánchez 102d230321
Provisioning: generate client for jobs (#109242)
* Generate client for jobs

* Revert changes in client and openapi
2025-08-06 10:32:11 +00:00
Stephanie Hingtgen 9f4773c9a5
Provisioning: Extract to apps submodule (#109074) 2025-08-01 14:35:18 -05:00