4 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7 // GrafanaDataSourceSpec defines the desired state of GrafanaDataSource
8 // +k8s:openapi-gen=true
9 type GrafanaDataSourceSpec struct {
10 Datasources []Datasource `json:"datasources"`
11 Grafana map[string]string `json:"grafana"`
14 // GrafanaDataSourceStatus defines the observed state of GrafanaDataSource
15 // +k8s:openapi-gen=true
16 type GrafanaDataSourceStatus struct {
19 // Datasource defines the fields in a GrafanaDataSource
20 // +k8s:openapi-gen=true
21 type Datasource struct {
22 Name string `json:"name"`
23 Type string `json:"type"`
24 URL string `json:"url"`
25 IsDefault bool `json:"isDefault,omitempty"`
26 Access string `json:"access"`
27 WithCredentials bool `json:"withCredentials,omitempty"`
28 BasicAuth bool `json:"basicAuth,omitempty"`
29 BasicAuthUser string `json:"basicAuthUser,omitempty"`
30 BasicAuthPassword string `json:"basicAuthPassword,omitempty"`
31 JsonData map[string]string `json:"jsonData,omitempty"`
32 Database string `json:"database,omitempty"`
33 User string `json:"user,omitempty"`
34 Password string `json:"password,omitempty"`
35 ReadOnly bool `json:"readOnly,omitempty"`
38 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
40 // GrafanaDataSource is the Schema for the grafanadatasources API
41 // +k8s:openapi-gen=true
42 // +kubebuilder:subresource:status
43 type GrafanaDataSource struct {
44 metav1.TypeMeta `json:",inline"`
45 metav1.ObjectMeta `json:"metadata,omitempty"`
47 Spec GrafanaDataSourceSpec `json:"spec,omitempty"`
48 Status GrafanaDataSourceStatus `json:"status,omitempty"`
51 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
53 // GrafanaDataSourceList contains a list of GrafanaDataSource
54 type GrafanaDataSourceList struct {
55 metav1.TypeMeta `json:",inline"`
56 metav1.ListMeta `json:"metadata,omitempty"`
57 Items []GrafanaDataSource `json:"items"`
61 SchemeBuilder.Register(&GrafanaDataSource{}, &GrafanaDataSourceList{})