Created
November 5, 2022 09:54
-
-
Save patsevanton/a8abf9af71ece54f1a72973b0802f64a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# Source: loggenerator/templates/serviceaccount.yaml | |
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: loggenerat-loggenerator | |
labels: | |
helm.sh/chart: loggenerator-0.1.0 | |
app.kubernetes.io/name: loggenerator | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
--- | |
# Source: loggenerator/templates/service.yaml | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: loggenerat-loggenerator | |
labels: | |
helm.sh/chart: loggenerator-0.1.0 | |
app.kubernetes.io/name: loggenerator | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
spec: | |
type: ClusterIP | |
ports: | |
- port: 80 | |
targetPort: http | |
protocol: TCP | |
name: http | |
selector: | |
app.kubernetes.io/name: loggenerator | |
app.kubernetes.io/instance: loggenerat | |
--- | |
# Source: loggenerator/templates/deployment.yaml | |
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: loggenerat-loggenerator | |
labels: | |
helm.sh/chart: loggenerator-0.1.0 | |
app.kubernetes.io/name: loggenerator | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
spec: | |
replicas: 1 | |
selector: | |
matchLabels: | |
app.kubernetes.io/name: loggenerator | |
app.kubernetes.io/instance: loggenerat | |
template: | |
metadata: | |
labels: | |
app.kubernetes.io/name: loggenerator | |
app.kubernetes.io/instance: loggenerat | |
spec: | |
serviceAccountName: loggenerat-loggenerator | |
securityContext: | |
{} | |
containers: | |
- name: loggenerator | |
securityContext: | |
{} | |
image: "liubin/loggenerator:latest" | |
imagePullPolicy: IfNotPresent | |
env: | |
- name: MAX | |
value: "9" | |
- name: SPEED | |
value: "9" | |
ports: | |
- name: http | |
containerPort: 80 | |
protocol: TCP | |
resources: | |
{} | |
--- | |
# Source: loggenerator/charts/cassandra/templates/serviceaccount.yaml | |
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: loggenerat-cassandra | |
namespace: "loggenerator" | |
labels: | |
app.kubernetes.io/name: cassandra | |
helm.sh/chart: cassandra-9.7.3 | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
annotations: | |
helm.sh/hook: pre-upgrade,pre-install | |
helm.sh/hook-weight: "-10" | |
automountServiceAccountToken: true | |
--- | |
# Source: loggenerator/charts/cassandra/templates/cassandra-secret.yaml | |
apiVersion: v1 | |
kind: Secret | |
metadata: | |
name: loggenerat-cassandra | |
namespace: "loggenerator" | |
labels: | |
app.kubernetes.io/name: cassandra | |
helm.sh/chart: cassandra-9.7.3 | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
annotations: | |
helm.sh/hook: pre-upgrade,pre-install | |
helm.sh/hook-weight: "-10" | |
type: Opaque | |
data: | |
cassandra-password: "SFFJUFBVeVFlcg==" | |
--- | |
# Source: loggenerator/charts/cassandra/templates/metrics-configmap.yaml | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: loggenerat-cassandra-metrics-conf | |
namespace: "loggenerator" | |
labels: | |
app.kubernetes.io/name: cassandra | |
helm.sh/chart: cassandra-9.7.3 | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
app.kubernetes.io/part-of: cassandra | |
app.kubernetes.io/component: cassandra-exporter | |
annotations: | |
helm.sh/hook: pre-upgrade,pre-install | |
helm.sh/hook-weight: "-10" | |
data: | |
config.yml: |- | |
host: localhost:5555 | |
ssl: False | |
user: | |
password: | |
listenPort: 8080 | |
blacklist: | |
# To profile the duration of jmx call you can start the program with the following options | |
# > java -Dorg.slf4j.simpleLogger.defaultLogLevel=trace -jar cassandra_exporter.jar config.yml --oneshot | |
# | |
# To get intuition of what is done by cassandra when something is called you can look in cassandra | |
# https://github.com/apache/cassandra/tree/trunk/src/java/org/apache/cassandra/metrics | |
# Please avoid to scrape frequently those calls that are iterating over all sstables | |
# Unaccessible metrics (not enough privilege) | |
- java:lang:memorypool:.*usagethreshold.* | |
# Leaf attributes not interesting for us but that are presents in many path | |
- .*:999thpercentile | |
- .*:95thpercentile | |
- .*:fifteenminuterate | |
- .*:fiveminuterate | |
- .*:durationunit | |
- .*:rateunit | |
- .*:stddev | |
- .*:meanrate | |
- .*:mean | |
- .*:min | |
# Path present in many metrics but uninterresting | |
- .*:viewlockacquiretime:.* | |
- .*:viewreadtime:.* | |
- .*:cas[a-z]+latency:.* | |
- .*:colupdatetimedeltahistogram:.* | |
# Mostly for RPC, do not scrap them | |
- org:apache:cassandra:db:.* | |
# columnfamily is an alias for Table metrics | |
# https://github.com/apache/cassandra/blob/8b3a60b9a7dbefeecc06bace617279612ec7092d/src/java/org/apache/cassandra/metrics/TableMetrics.java#L162 | |
- org:apache:cassandra:metrics:columnfamily:.* | |
# Should we export metrics for system keyspaces/tables ? | |
- org:apache:cassandra:metrics:[^:]+:system[^:]*:.* | |
# Don't scrap us | |
- com:criteo:nosql:cassandra:exporter:.* | |
maxScrapFrequencyInSec: | |
50: | |
- .* | |
# Refresh those metrics only every hour as it is costly for cassandra to retrieve them | |
3600: | |
- .*:snapshotssize:.* | |
- .*:estimated.* | |
- .*:totaldiskspaceused:.* | |
--- | |
# Source: loggenerator/charts/cassandra/templates/headless-svc.yaml | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: loggenerat-cassandra-headless | |
namespace: "loggenerator" | |
labels: | |
app.kubernetes.io/name: cassandra | |
helm.sh/chart: cassandra-9.7.3 | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
annotations: | |
helm.sh/hook: pre-upgrade,pre-install | |
helm.sh/hook-weight: "-10" | |
spec: | |
clusterIP: None | |
publishNotReadyAddresses: true | |
ports: | |
- name: intra | |
port: 7000 | |
targetPort: intra | |
- name: tls | |
port: 7001 | |
targetPort: tls | |
- name: jmx | |
port: 7199 | |
targetPort: jmx | |
- name: cql | |
port: 9042 | |
targetPort: cql | |
selector: | |
app.kubernetes.io/name: cassandra | |
app.kubernetes.io/instance: loggenerat | |
--- | |
# Source: loggenerator/charts/cassandra/templates/service.yaml | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: loggenerat-cassandra | |
namespace: "loggenerator" | |
labels: | |
app.kubernetes.io/name: cassandra | |
helm.sh/chart: cassandra-9.7.3 | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
annotations: | |
helm.sh/hook: pre-upgrade,pre-install | |
helm.sh/hook-weight: "-10" | |
spec: | |
type: ClusterIP | |
sessionAffinity: None | |
ports: | |
- name: cql | |
port: 9042 | |
targetPort: cql | |
nodePort: null | |
- name: metrics | |
port: 8080 | |
nodePort: null | |
selector: | |
app.kubernetes.io/name: cassandra | |
app.kubernetes.io/instance: loggenerat | |
--- | |
# Source: loggenerator/templates/tests/test-connection.yaml | |
apiVersion: v1 | |
kind: Pod | |
metadata: | |
name: "loggenerat-loggenerator-test-connection" | |
labels: | |
helm.sh/chart: loggenerator-0.1.0 | |
app.kubernetes.io/name: loggenerator | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
annotations: | |
"helm.sh/hook": test | |
spec: | |
containers: | |
- name: wget | |
image: busybox | |
command: ['wget'] | |
args: ['loggenerat-loggenerator:80'] | |
restartPolicy: Never | |
--- | |
# Source: loggenerator/charts/cassandra/templates/statefulset.yaml | |
apiVersion: apps/v1 | |
kind: StatefulSet | |
metadata: | |
name: loggenerat-cassandra | |
namespace: "loggenerator" | |
labels: | |
app.kubernetes.io/name: cassandra | |
helm.sh/chart: cassandra-9.7.3 | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
annotations: | |
helm.sh/hook: pre-upgrade,pre-install | |
helm.sh/hook-weight: "-10" | |
spec: | |
selector: | |
matchLabels: | |
app.kubernetes.io/name: cassandra | |
app.kubernetes.io/instance: loggenerat | |
serviceName: loggenerat-cassandra-headless | |
podManagementPolicy: OrderedReady | |
replicas: 1 | |
updateStrategy: | |
type: RollingUpdate | |
template: | |
metadata: | |
labels: | |
app.kubernetes.io/name: cassandra | |
helm.sh/chart: cassandra-9.7.3 | |
app.kubernetes.io/instance: loggenerat | |
app.kubernetes.io/managed-by: Helm | |
spec: | |
serviceAccountName: loggenerat-cassandra | |
affinity: | |
podAffinity: | |
podAntiAffinity: | |
preferredDuringSchedulingIgnoredDuringExecution: | |
- podAffinityTerm: | |
labelSelector: | |
matchLabels: | |
app.kubernetes.io/name: cassandra | |
app.kubernetes.io/instance: loggenerat | |
namespaces: | |
- "loggenerator" | |
topologyKey: kubernetes.io/hostname | |
weight: 1 | |
nodeAffinity: | |
securityContext: | |
fsGroup: 1001 | |
containers: | |
- name: cassandra | |
command: | |
- bash | |
- -ec | |
- | | |
# Node 0 is the password seeder | |
if [[ $POD_NAME =~ (.*)-0$ ]]; then | |
echo "Setting node as password seeder" | |
export CASSANDRA_PASSWORD_SEEDER=yes | |
else | |
# Only node 0 will execute the startup initdb scripts | |
export CASSANDRA_IGNORE_INITDB_SCRIPTS=1 | |
fi | |
/opt/bitnami/scripts/cassandra/entrypoint.sh /opt/bitnami/scripts/cassandra/run.sh | |
image: docker.io/bitnami/cassandra:4.0.7-debian-11-r0 | |
imagePullPolicy: "IfNotPresent" | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 1001 | |
env: | |
- name: BITNAMI_DEBUG | |
value: "false" | |
- name: CASSANDRA_CLUSTER_NAME | |
value: cassandra | |
- name: CASSANDRA_SEEDS | |
value: "loggenerat-cassandra-0.loggenerat-cassandra-headless.loggenerator.svc.cluster.local" | |
- name: CASSANDRA_PASSWORD | |
valueFrom: | |
secretKeyRef: | |
name: loggenerat-cassandra | |
key: cassandra-password | |
- name: POD_IP | |
valueFrom: | |
fieldRef: | |
fieldPath: status.podIP | |
- name: POD_NAME | |
valueFrom: | |
fieldRef: | |
fieldPath: metadata.name | |
- name: CASSANDRA_USER | |
value: "cassandra" | |
- name: CASSANDRA_NUM_TOKENS | |
value: "256" | |
- name: CASSANDRA_DATACENTER | |
value: dc1 | |
- name: CASSANDRA_ENDPOINT_SNITCH | |
value: SimpleSnitch | |
- name: CASSANDRA_KEYSTORE_LOCATION | |
value: "/opt/bitnami/cassandra/certs/keystore" | |
- name: CASSANDRA_TRUSTSTORE_LOCATION | |
value: "/opt/bitnami/cassandra/certs/truststore" | |
- name: CASSANDRA_RACK | |
value: rack1 | |
- name: CASSANDRA_TRANSPORT_PORT_NUMBER | |
value: "7000" | |
- name: CASSANDRA_JMX_PORT_NUMBER | |
value: "7199" | |
- name: CASSANDRA_CQL_PORT_NUMBER | |
value: "9042" | |
envFrom: | |
livenessProbe: | |
exec: | |
command: | |
- /bin/bash | |
- -ec | |
- | | |
nodetool info | grep "Native Transport active: true" | |
initialDelaySeconds: 60 | |
periodSeconds: 30 | |
timeoutSeconds: 30 | |
successThreshold: 1 | |
failureThreshold: 5 | |
readinessProbe: | |
exec: | |
command: | |
- /bin/bash | |
- -ec | |
- | | |
nodetool status | grep -E "^UN\\s+${POD_IP}" | |
initialDelaySeconds: 60 | |
periodSeconds: 10 | |
timeoutSeconds: 30 | |
successThreshold: 1 | |
failureThreshold: 5 | |
lifecycle: | |
preStop: | |
exec: | |
command: | |
- bash | |
- -ec | |
- nodetool drain | |
ports: | |
- name: intra | |
containerPort: 7000 | |
- name: tls | |
containerPort: 7001 | |
- name: jmx | |
containerPort: 7199 | |
- name: cql | |
containerPort: 9042 | |
resources: | |
limits: {} | |
requests: {} | |
volumeMounts: | |
- name: data | |
mountPath: /bitnami/cassandra | |
volumes: | |
- name: metrics-conf | |
configMap: | |
name: loggenerat-cassandra-metrics-conf | |
volumeClaimTemplates: | |
- metadata: | |
name: data | |
labels: | |
app.kubernetes.io/name: cassandra | |
app.kubernetes.io/instance: loggenerat | |
spec: | |
accessModes: | |
- "ReadWriteOnce" | |
resources: | |
requests: | |
storage: "8Gi" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment