Skip to content

Commit 5ba0330

Browse files
authored
feat: add perses operator deployment and apis (#680)
1 parent 19a579a commit 5ba0330

33 files changed

+5523
-283
lines changed

Makefile

+7
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,13 @@ generate-prom-operator-crds: $(CONTROLLER_GEN)
5757
output:dir=. \
5858
output:crd:dir=./deploy/crds/kubernetes
5959

60+
.PHONY: generate-perses-op-crds
61+
generate-perses-op-crds: $(CONTROLLER_GEN)
62+
$(CONTROLLER_GEN) crd \
63+
paths=github.com/perses/perses-operator/api/... \
64+
output:dir=. \
65+
output:crd:dir=./deploy/perses/crds
66+
6067
.PHONY: generate-crds
6168
generate-crds: $(CONTROLLER_GEN) generate-prom-op-crds
6269
$(CONTROLLER_GEN) crd \

bundle/manifests/observability-operator.clusterserviceversion.yaml

+219-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ metadata:
4242
categories: Monitoring
4343
certified: "false"
4444
containerImage: observability-operator:1.0.0
45-
createdAt: "2025-02-24T09:25:26Z"
45+
createdAt: "2025-02-24T18:08:14Z"
4646
description: A Go based Kubernetes operator to setup and manage highly available
4747
Monitoring Stack using Prometheus, Alertmanager and Thanos Querier.
4848
operatorframework.io/cluster-monitoring: "true"
@@ -53,7 +53,8 @@ metadata:
5353
"prometheuses.monitoring.rhobs",
5454
"alertmanagers.monitoring.rhobs",
5555
"thanosrulers.monitoring.rhobs",
56-
"prometheusagents.monitoring.rhobs"
56+
"prometheusagents.monitoring.rhobs",
57+
"perses.perses.dev"
5758
]
5859
operators.operatorframework.io/project_layout: unknown
5960
repository: https://github.com/rhobs/observability-operator
@@ -79,6 +80,15 @@ spec:
7980
kind: MonitoringStack
8081
name: monitoringstacks.monitoring.rhobs
8182
version: v1alpha1
83+
- kind: Perses
84+
name: perses.perses.dev
85+
version: v1alpha1
86+
- kind: PersesDashboard
87+
name: persesdashboards.perses.dev
88+
version: v1alpha1
89+
- kind: PersesDatasource
90+
name: persesdatasources.perses.dev
91+
version: v1alpha1
8292
- description: PodMonitor defines monitoring for a set of pods
8393
displayName: PodMonitor
8494
kind: PodMonitor
@@ -520,6 +530,38 @@ spec:
520530
- list
521531
- patch
522532
- watch
533+
- apiGroups:
534+
- perses.dev
535+
resources:
536+
- perses
537+
- persesdashboards
538+
- persesdatasources
539+
verbs:
540+
- create
541+
- delete
542+
- get
543+
- list
544+
- patch
545+
- update
546+
- watch
547+
- apiGroups:
548+
- perses.dev
549+
resources:
550+
- perses/finalizers
551+
- persesdashboards/finalizers
552+
- persesdatasources/finalizers
553+
verbs:
554+
- update
555+
- apiGroups:
556+
- perses.dev
557+
resources:
558+
- perses/status
559+
- persesdashboards/status
560+
- persesdatasources/status
561+
verbs:
562+
- get
563+
- patch
564+
- update
523565
- apiGroups:
524566
- policy
525567
resources:
@@ -573,6 +615,119 @@ spec:
573615
verbs:
574616
- list
575617
serviceAccountName: observability-operator-sa
618+
- rules:
619+
- apiGroups:
620+
- apps
621+
resources:
622+
- deployments
623+
- statefulsets
624+
verbs:
625+
- create
626+
- delete
627+
- get
628+
- list
629+
- patch
630+
- update
631+
- watch
632+
- apiGroups:
633+
- ""
634+
resources:
635+
- events
636+
verbs:
637+
- create
638+
- patch
639+
- apiGroups:
640+
- ""
641+
resources:
642+
- services
643+
- configmaps
644+
verbs:
645+
- get
646+
- patch
647+
- update
648+
- create
649+
- delete
650+
- list
651+
- watch
652+
- apiGroups:
653+
- perses.dev
654+
resources:
655+
- perses
656+
verbs:
657+
- create
658+
- delete
659+
- get
660+
- list
661+
- patch
662+
- update
663+
- watch
664+
- apiGroups:
665+
- perses.dev
666+
resources:
667+
- perses/finalizers
668+
verbs:
669+
- update
670+
- apiGroups:
671+
- perses.dev
672+
resources:
673+
- perses/status
674+
verbs:
675+
- get
676+
- patch
677+
- update
678+
- apiGroups:
679+
- perses.dev
680+
resources:
681+
- persesdashboards
682+
verbs:
683+
- create
684+
- delete
685+
- get
686+
- list
687+
- patch
688+
- update
689+
- watch
690+
- apiGroups:
691+
- perses.dev
692+
resources:
693+
- persesdashboards/finalizers
694+
verbs:
695+
- update
696+
- apiGroups:
697+
- perses.dev
698+
resources:
699+
- persesdashboards/status
700+
verbs:
701+
- get
702+
- patch
703+
- update
704+
- apiGroups:
705+
- perses.dev
706+
resources:
707+
- persesdatasources
708+
verbs:
709+
- create
710+
- delete
711+
- get
712+
- list
713+
- patch
714+
- update
715+
- watch
716+
- apiGroups:
717+
- perses.dev
718+
resources:
719+
- persesdatasources/finalizers
720+
verbs:
721+
- update
722+
- apiGroups:
723+
- perses.dev
724+
resources:
725+
- persesdatasources/status
726+
verbs:
727+
- get
728+
- patch
729+
- update
730+
serviceAccountName: perses-operator
576731
deployments:
577732
- label:
578733
app.kubernetes.io/component: controller
@@ -795,6 +950,68 @@ spec:
795950
secret:
796951
optional: true
797952
secretName: observability-operator-tls
953+
- label:
954+
app.kubernetes.io/component: controller
955+
app.kubernetes.io/name: perses-operator
956+
app.kubernetes.io/part-of: observability-operator
957+
name: perses-operator
958+
spec:
959+
replicas: 1
960+
selector:
961+
matchLabels:
962+
app.kubernetes.io/component: controller
963+
app.kubernetes.io/name: perses-operator
964+
app.kubernetes.io/part-of: observability-operator
965+
strategy: {}
966+
template:
967+
metadata:
968+
annotations:
969+
kubectl.kubernetes.io/default-container: perses-operator
970+
labels:
971+
app.kubernetes.io/component: controller
972+
app.kubernetes.io/name: perses-operator
973+
app.kubernetes.io/part-of: observability-operator
974+
spec:
975+
affinity:
976+
nodeAffinity:
977+
preferredDuringSchedulingIgnoredDuringExecution:
978+
- preference:
979+
matchExpressions:
980+
- key: node-role.kubernetes.io/infra
981+
operator: Exists
982+
weight: 1
983+
containers:
984+
- image: quay.io/persesdev/perses-operator:v0.1.1
985+
livenessProbe:
986+
httpGet:
987+
path: /healthz
988+
port: 8081
989+
initialDelaySeconds: 15
990+
periodSeconds: 20
991+
name: perses-operator
992+
readinessProbe:
993+
httpGet:
994+
path: /readyz
995+
port: 8081
996+
initialDelaySeconds: 5
997+
periodSeconds: 10
998+
resources:
999+
limits:
1000+
cpu: 500m
1001+
memory: 128Mi
1002+
requests:
1003+
cpu: 10m
1004+
memory: 64Mi
1005+
securityContext:
1006+
allowPrivilegeEscalation: false
1007+
capabilities:
1008+
drop:
1009+
- ALL
1010+
serviceAccountName: perses-operator
1011+
tolerations:
1012+
- effect: NoSchedule
1013+
key: node-role.kubernetes.io/infra
1014+
operator: Exists
7981015
strategy: deployment
7991016
installModes:
8001017
- supported: false

bundle/manifests/observability.openshift.io_uiplugins.yaml

-10
Original file line numberDiff line numberDiff line change
@@ -197,16 +197,6 @@ spec:
197197
description: Indicates if perses-related feature(s) should
198198
be enabled
199199
type: boolean
200-
namespace:
201-
description: |-
202-
Namespace of the Perses Service to proxy to.
203-
If Enabled=true and Namespace is not included it will be initialized to a default value.
204-
type: string
205-
serviceName:
206-
description: |-
207-
ServiceName of the Perses Service to proxy to.
208-
If Enabled=true and ServiceName is not included it will be initialized to a default value.
209-
type: string
210200
required:
211201
- enabled
212202
type: object

0 commit comments

Comments
 (0)