mirror of
https://github.com/grafana/grafana.git
synced 2024-11-29 12:14:08 -06:00
c4c9bfaf2e
* first round of entityapi updates - quote column names and clean up insert/update queries - replace grn with guid - streamline table structure fixes streamline entity history move EntitySummary into proto remove EntitySummary add guid to json fix tests change DB_Uuid to DB_NVarchar fix folder test convert interface to any more cleanup start entity store under grafana-apiserver dskit target CRUD working, kind of rough cut of wiring entity api to kube-apiserver fake grafana user in context add key to entity list working revert unnecessary changes move entity storage files to their own package, clean up use accessor to read/write grafana annotations implement separate Create and Update functions * go mod tidy * switch from Kind to resource * basic grpc storage server * basic support for grpc entity store * don't connect to database unless it's needed, pass user identity over grpc * support getting user from k8s context, fix some mysql issues * assign owner to snowflake dependency * switch from ulid to uuid for guids * cleanup, rename Search to List * remove entityListResult * EntityAPI: remove extra user abstraction (#79033) * remove extra user abstraction * add test stub (but * move grpc context setup into client wrapper, fix lint issue * remove unused constants * remove custom json stuff * basic list filtering, add todo * change target to storage-server, allow entityStore flag in prod mode * fix issue with Update * EntityAPI: make test work, need to resolve expected differences (#79123) * make test work, need to resolve expected differences * remove the fields not supported by legacy * sanitize out the bits legacy does not support * sanitize out the bits legacy does not support --------- Co-authored-by: Ryan McKinley <ryantxu@gmail.com> * update feature toggle generated files * remove unused http headers * update feature flag strategy * devmode * update readme * spelling * readme --------- Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
1.6 KiB
1.6 KiB
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.