4 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7 // EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
8 // NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
10 // GrafanaDataSourceSpec defines the desired state of GrafanaDataSource
11 // +k8s:openapi-gen=true
12 type GrafanaDataSourceSpec struct {
13 // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
14 // Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file
15 // Add custom validation using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
16 Datasources []Datasource `json:"datasources"`
17 Grafana map[string]string `json:"grafana"`
20 // GrafanaDataSourceStatus defines the observed state of GrafanaDataSource
21 // +k8s:openapi-gen=true
22 type GrafanaDataSourceStatus struct {
25 // Datasource defines the fields in a GrafanaDataSource
26 // +k8s:openapi-gen=true
27 type Datasource struct {
28 Name string `json:"name"`
29 Type string `json:"type"`
30 URL string `json:"url"`
31 IsDefault bool `json:"isDefault,omitempty"`
32 Access string `json:"access"`
33 WithCredentials bool `json:"withCredentials,omitempty"`
34 BasicAuth bool `json:"basicAuth,omitempty"`
35 BasicAuthUser string `json:"basicAuthUser,omitempty"`
36 BasicAuthPassword string `json:"basicAuthPassword,omitempty"`
37 JsonData map[string]string `json:"jsonData,omitempty"`
38 Database string `json:"database,omitempty"`
39 User string `json:"user,omitempty"`
40 Password string `json:"password,omitempty"`
41 ReadOnly bool `json:"readOnly,omitempty"`
44 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
46 // GrafanaDataSource is the Schema for the grafanadatasources API
47 // +k8s:openapi-gen=true
48 // +kubebuilder:subresource:status
49 type GrafanaDataSource struct {
50 metav1.TypeMeta `json:",inline"`
51 metav1.ObjectMeta `json:"metadata,omitempty"`
53 Spec GrafanaDataSourceSpec `json:"spec,omitempty"`
54 Status GrafanaDataSourceStatus `json:"status,omitempty"`
57 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
59 // GrafanaDataSourceList contains a list of GrafanaDataSource
60 type GrafanaDataSourceList struct {
61 metav1.TypeMeta `json:",inline"`
62 metav1.ListMeta `json:"metadata,omitempty"`
63 Items []GrafanaDataSource `json:"items"`
67 SchemeBuilder.Register(&GrafanaDataSource{}, &GrafanaDataSourceList{})