Files
my-rook-config/cluster/examples/kubernetes/cassandra/operator.yaml
T
Maksim Nabokikh 7dc9ec1191 cassandra: JMX prometheus exporter
Export prometheus metrics for cassandra in sidecar container

Signed-off-by: Maksim Nabokikh <maksim.nabokikh@flant.com>
2020-02-03 11:40:38 +04:00

205 lines
4.7 KiB
YAML

# Namespace where Cassandra Operator will live
apiVersion: v1
kind: Namespace
metadata:
name: rook-cassandra-system
---
# Cassandra Cluster CRD
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: clusters.cassandra.rook.io
spec:
group: cassandra.rook.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Namespaced
version: v1alpha1
validation:
openAPIV3Schema:
properties:
spec:
type: object
properties:
version:
type: string
description: "Version of Cassandra"
datacenter:
type: object
properties:
name:
type: string
description: "Datacenter Name"
racks:
type: array
properties:
name:
type: string
members:
type: integer
configMapName:
type: string
jmxExporterConfigMapName:
type: string
storage:
type: object
properties:
volumeClaimTemplates:
type: object
# TODO: Check if we can ref the already existing schema
required:
- "volumeClaimTemplates"
placement:
type: object
resources:
type: object
properties:
# TODO: Check if we can ref the already existing schema
cassandra:
type: object
sidecar:
type: object
required:
- "cassandra"
- "sidecar"
sidecarImage:
type: object
required:
- "name"
- "members"
- "storage"
- "resources"
required:
- "name"
required:
- "version"
- "datacenter"
---
# ClusterRole for cassandra-operator.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: rook-cassandra-operator
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- delete
- apiGroups:
- ""
resources:
- services
verbs:
- "*"
- apiGroups:
- ""
resources:
- persistentvolumes
- persistentvolumeclaims
verbs:
- get
- delete
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- apiGroups:
- apps
resources:
- statefulsets
verbs:
- "*"
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- create
- apiGroups:
- cassandra.rook.io
resources:
- "*"
verbs:
- "*"
- apiGroups:
- ""
resources:
- events
verbs:
- create
- update
- patch
---
# ServiceAccount for cassandra-operator. Serves as its authorization identity.
apiVersion: v1
kind: ServiceAccount
metadata:
name: rook-cassandra-operator
namespace: rook-cassandra-system
---
# Bind cassandra-operator ServiceAccount with ClusterRole.
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: rook-cassandra-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: rook-cassandra-operator
subjects:
- kind: ServiceAccount
name: rook-cassandra-operator
namespace: rook-cassandra-system
---
# cassandra-operator StatefulSet.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rook-cassandra-operator
namespace: rook-cassandra-system
labels:
app: rook-cassandra-operator
spec:
replicas: 1
serviceName: "non-existent-service"
selector:
matchLabels:
app: rook-cassandra-operator
template:
metadata:
labels:
app: rook-cassandra-operator
spec:
serviceAccountName: rook-cassandra-operator
containers:
- name: rook-cassandra-operator
image: rook/cassandra:master
imagePullPolicy: "Always"
args: ["cassandra", "operator"]
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace