grafana/pkg/services/apiserver/README.md
Todd Treece d6e6298103
K8s: Add Aggregation to Backend Service (#81591)
Co-authored-by: Charandas Batra <charandas.batra@grafana.com>
2024-02-12 22:59:35 +02:00

82 lines
1.6 KiB
Markdown

# Grafana Kubernetes compatible API Server
## Basic Setup
```ini
[feature_toggles]
kubernetesPlaylists = true
```
Start Grafana:
```bash
make run
```
## Enable dual write to `etcd`
Start `etcd`:
```bash
make devenv sources=etcd
```
Set storage type and etcd server address in `custom.ini`:
```ini
[grafana-apiserver]
storage_type = etcd
etcd_servers = 127.0.0.1:2379
```
## Enable dual write to JSON files:
Set storage type:
```ini
[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
```
## Enable aggregation
See [aggregator/README.md](./aggregator/README.md) for more information.
### `kubectl` access
For kubectl to work, grafana needs to run over https. To simplify development, you can use:
```ini
app_mode = development
[feature_toggles]
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:
```bash
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](http://localhost:3000/apis).
The equivalent openapi docs can be seen in [http://localhost:3000/swagger](http://localhost:3000/swagger),
select the relevant API from the dropdown in the upper right.