Skip to content

Commit a5438f0

Browse files
committed
add monitoring
Signed-off-by: Masood <[email protected]>
1 parent 0562e8d commit a5438f0

File tree

5 files changed

+267
-1
lines changed

5 files changed

+267
-1
lines changed

apis/kubedb/v1alpha2/openapi_generated.go

Lines changed: 7 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/kubedb/v1alpha2/qdrant_helpers.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"kubedb.dev/apimachinery/apis/kubedb"
2626
"kubedb.dev/apimachinery/crds"
2727

28+
promapi "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
2829
"gomodules.xyz/pointer"
2930
core "k8s.io/api/core/v1"
3031
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -34,6 +35,7 @@ import (
3435
meta_util "kmodules.xyz/client-go/meta"
3536
"kmodules.xyz/client-go/policy/secomp"
3637
appcat "kmodules.xyz/custom-resources/apis/appcatalog/v1alpha1"
38+
mona "kmodules.xyz/monitoring-agent-api/api/v1"
3739
ofst "kmodules.xyz/offshoot-api/api/v2"
3840
"sigs.k8s.io/controller-runtime/pkg/client"
3941
)
@@ -182,6 +184,51 @@ func (q *Qdrant) PodLabels(extraLabels ...map[string]string) map[string]string {
182184
return q.offshootLabels(meta_util.OverwriteKeys(q.OffshootSelectors(), extraLabels...), q.Spec.PodTemplate.Labels)
183185
}
184186

187+
func (q *Qdrant) ServiceLabels(alias ServiceAlias, extraLabels ...map[string]string) map[string]string {
188+
svcTemplate := GetServiceTemplate(q.Spec.ServiceTemplates, alias)
189+
return q.offshootLabels(meta_util.OverwriteKeys(q.OffshootSelectors(), extraLabels...), svcTemplate.Labels)
190+
}
191+
192+
type qdrantStatsService struct {
193+
*Qdrant
194+
}
195+
196+
func (q qdrantStatsService) GetNamespace() string {
197+
return q.Qdrant.GetNamespace()
198+
}
199+
200+
func (q qdrantStatsService) ServiceName() string {
201+
return q.OffshootName() + "-stats"
202+
}
203+
204+
func (q qdrantStatsService) ServiceMonitorName() string {
205+
return q.ServiceName()
206+
}
207+
208+
func (q qdrantStatsService) ServiceMonitorAdditionalLabels() map[string]string {
209+
return q.OffshootLabels()
210+
}
211+
212+
func (q qdrantStatsService) Path() string {
213+
return kubedb.DefaultStatsPath
214+
}
215+
216+
func (q qdrantStatsService) Scheme() string {
217+
return ""
218+
}
219+
220+
func (q qdrantStatsService) TLSConfig() *promapi.TLSConfig {
221+
return nil
222+
}
223+
224+
func (q Qdrant) StatsService() mona.StatsAccessor {
225+
return &qdrantStatsService{&q}
226+
}
227+
228+
func (q Qdrant) StatsServiceLabels() map[string]string {
229+
return q.ServiceLabels(StatsServiceAlias, map[string]string{kubedb.LabelRole: kubedb.RoleStats})
230+
}
231+
185232
func (q *Qdrant) SetDefaults(kc client.Client) {
186233
if q.Spec.Replicas == nil {
187234
q.Spec.Replicas = pointer.Int32P(1)

apis/kubedb/v1alpha2/qdrant_types.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
core "k8s.io/api/core/v1"
2121
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
2222
kmapi "kmodules.xyz/client-go/api/v1"
23+
mona "kmodules.xyz/monitoring-agent-api/api/v1"
2324
ofst "kmodules.xyz/offshoot-api/api/v2"
2425
)
2526

@@ -111,6 +112,10 @@ type QdrantSpec struct {
111112
// +optional
112113
// +kubebuilder:default={periodSeconds: 10, timeoutSeconds: 10, failureThreshold: 3}
113114
HealthChecker kmapi.HealthCheckSpec `json:"healthChecker"`
115+
116+
// Monitor is used monitor database instance
117+
// +optional
118+
Monitor *mona.AgentSpec `json:"monitor,omitempty"`
114119
}
115120

116121
// QdrantStatus defines the observed state of Qdrant.

apis/kubedb/v1alpha2/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crds/kubedb.com_qdrants.yaml

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,209 @@ spec:
111111
- Standalone
112112
- Distributed
113113
type: string
114+
monitor:
115+
properties:
116+
agent:
117+
enum:
118+
- prometheus.io/operator
119+
- prometheus.io
120+
- prometheus.io/builtin
121+
type: string
122+
prometheus:
123+
properties:
124+
exporter:
125+
properties:
126+
args:
127+
items:
128+
type: string
129+
type: array
130+
env:
131+
items:
132+
properties:
133+
name:
134+
type: string
135+
value:
136+
type: string
137+
valueFrom:
138+
properties:
139+
configMapKeyRef:
140+
properties:
141+
key:
142+
type: string
143+
name:
144+
default: ""
145+
type: string
146+
optional:
147+
type: boolean
148+
required:
149+
- key
150+
type: object
151+
x-kubernetes-map-type: atomic
152+
fieldRef:
153+
properties:
154+
apiVersion:
155+
type: string
156+
fieldPath:
157+
type: string
158+
required:
159+
- fieldPath
160+
type: object
161+
x-kubernetes-map-type: atomic
162+
resourceFieldRef:
163+
properties:
164+
containerName:
165+
type: string
166+
divisor:
167+
anyOf:
168+
- type: integer
169+
- type: string
170+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
171+
x-kubernetes-int-or-string: true
172+
resource:
173+
type: string
174+
required:
175+
- resource
176+
type: object
177+
x-kubernetes-map-type: atomic
178+
secretKeyRef:
179+
properties:
180+
key:
181+
type: string
182+
name:
183+
default: ""
184+
type: string
185+
optional:
186+
type: boolean
187+
required:
188+
- key
189+
type: object
190+
x-kubernetes-map-type: atomic
191+
type: object
192+
required:
193+
- name
194+
type: object
195+
type: array
196+
port:
197+
default: 56790
198+
format: int32
199+
type: integer
200+
resources:
201+
properties:
202+
claims:
203+
items:
204+
properties:
205+
name:
206+
type: string
207+
request:
208+
type: string
209+
required:
210+
- name
211+
type: object
212+
type: array
213+
x-kubernetes-list-map-keys:
214+
- name
215+
x-kubernetes-list-type: map
216+
limits:
217+
additionalProperties:
218+
anyOf:
219+
- type: integer
220+
- type: string
221+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
222+
x-kubernetes-int-or-string: true
223+
type: object
224+
requests:
225+
additionalProperties:
226+
anyOf:
227+
- type: integer
228+
- type: string
229+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
230+
x-kubernetes-int-or-string: true
231+
type: object
232+
type: object
233+
securityContext:
234+
properties:
235+
allowPrivilegeEscalation:
236+
type: boolean
237+
appArmorProfile:
238+
properties:
239+
localhostProfile:
240+
type: string
241+
type:
242+
type: string
243+
required:
244+
- type
245+
type: object
246+
capabilities:
247+
properties:
248+
add:
249+
items:
250+
type: string
251+
type: array
252+
x-kubernetes-list-type: atomic
253+
drop:
254+
items:
255+
type: string
256+
type: array
257+
x-kubernetes-list-type: atomic
258+
type: object
259+
privileged:
260+
type: boolean
261+
procMount:
262+
type: string
263+
readOnlyRootFilesystem:
264+
type: boolean
265+
runAsGroup:
266+
format: int64
267+
type: integer
268+
runAsNonRoot:
269+
type: boolean
270+
runAsUser:
271+
format: int64
272+
type: integer
273+
seLinuxOptions:
274+
properties:
275+
level:
276+
type: string
277+
role:
278+
type: string
279+
type:
280+
type: string
281+
user:
282+
type: string
283+
type: object
284+
seccompProfile:
285+
properties:
286+
localhostProfile:
287+
type: string
288+
type:
289+
type: string
290+
required:
291+
- type
292+
type: object
293+
windowsOptions:
294+
properties:
295+
gmsaCredentialSpec:
296+
type: string
297+
gmsaCredentialSpecName:
298+
type: string
299+
hostProcess:
300+
type: boolean
301+
runAsUserName:
302+
type: string
303+
type: object
304+
type: object
305+
type: object
306+
serviceMonitor:
307+
properties:
308+
interval:
309+
type: string
310+
labels:
311+
additionalProperties:
312+
type: string
313+
type: object
314+
type: object
315+
type: object
316+
type: object
114317
podTemplate:
115318
properties:
116319
controller:

0 commit comments

Comments
 (0)