---
apiVersion: v1
kind: Namespace
metadata:
labels:
kubernetes.io/metadata.name: coredb-operator
name: coredb-operator
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: coredb-controller
namespace: coredb-operator
automountServiceAccountToken: true
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: control-cdb
rules:
- apiGroups: ["coredb.io"]
resources: ["coredbs", "coredbs/status"]
verbs: ["get", "list", "watch", "patch", "update"]
- apiGroups: ["events.k8s.io"]
resources: ["events"]
verbs: ["create"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "patch"]
- apiGroups: ["apps"]
resources: ["statefulsets"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: [""]
resources: ["services", "secrets", "pods", "pods/exec", "namespaces/status", "serviceaccounts", "secrets", "configmaps"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["roles", "rolebindings"]
verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: coredb-controller-binding
subjects:
- kind: ServiceAccount
namespace: coredb-operator
name: coredb-controller
roleRef:
kind: ClusterRole
name: control-cdb
apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: Service
metadata:
name: coredb-controller
namespace: coredb-operator
labels:
app: coredb-controller
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: coredb-controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: coredb-controller
namespace: coredb-operator
labels:
app: coredb-controller
spec:
replicas: 1
selector:
matchLabels:
app: coredb-controller
template:
metadata:
labels:
app: coredb-controller
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
spec:
serviceAccountName: coredb-controller
containers:
- name: coredb-controller
image: quay.io/coredb/coredb-operator:latest
imagePullPolicy: Always
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 50m
memory: 100Mi
ports:
- name: http
containerPort: 8080
protocol: TCP
env:
- name: OPENTELEMETRY_ENDPOINT_URL
value: "https://10.96.239.210:8080"
- name: RUST_LOG
value: "info,kube=debug,controller=debug"
- name: ENABLE_BACKUP
value: "false"
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 5