grafana/pkg/services/apiserver
Dan Cech 1f1461734c
Storage: Add support for sortBy selector (#80680)
* add support for sortBy field selector

* use label selectors instead of field selectors

* set entity_labels on create & update

* make entity server integration tests work

* test fixes

* be more consistent with handling of empty body, meta or status

* workaround for database is locked errors during migration

* fix double import of sqlite3

* rename functions and tidy up

* refactor update

* disable integration tests until we can fix the database locking issue
2024-02-07 15:05:10 -05:00
..
aggregator K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
auth/authorizer K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
builder K8s: Update common openapi generation scripts (#81857) 2024-02-04 22:37:10 +02:00
endpoints/request K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
options K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
registry/generic K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
rest K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
standalone K8s: Refactor standalone apiserver initialization (#81932) 2024-02-06 08:40:35 -08:00
storage Storage: Add support for sortBy selector (#80680) 2024-02-07 15:05:10 -05:00
utils K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
config.go K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
README.md K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00
service.go Storage: Add support for sortBy selector (#80680) 2024-02-07 15:05:10 -05:00
wireset.go K8s: Refactor config/options for aggregation (#81739) 2024-02-01 17:27:30 -05:00

Grafana Kubernetes compatible API Server

Basic Setup

[feature_toggles]
grafanaAPIServer = true
kubernetesPlaylists = true

Start Grafana:

make run

Enable dual write to etcd

Start etcd:

make devenv sources=etcd

Set storage type and etcd server address in custom.ini:

[grafana-apiserver]
storage_type = etcd
etcd_servers = 127.0.0.1:2379

Enable dual write to JSON files:

Set storage type:

[grafana-apiserver]
storage_type = file

Objects will be written to disk under the {data.path}/grafana-apiserver/ directory.

For example:

data/grafana-apiserver
├── grafana.kubeconfig
└── playlist.grafana.app
    └── playlists
        └── default
            └── hi.json

kubectl access

For kubectl to work, grafana needs to run over https. To simplify development, you can use:

app_mode = development

[feature_toggles]
grafanaAPIServer = true
grafanaAPIServerEnsureKubectlAccess = true 
kubernetesPlaylists = true

This will create a development kubeconfig and start a parallel ssl listener. It can be registered by navigating to the root grafana folder, then running:

export KUBECONFIG=$PWD/data/grafana-apiserver/grafana.kubeconfig
kubectl api-resources

Grafana API Access

The Kubernetes compatible API can be accessed using existing Grafana AuthN at: http://localhost:3000/apis.

The equivalent openapi docs can be seen in http://localhost:3000/swagger, select the relevant API from the dropdown in the upper right.