Created
November 5, 2022 09:54
-
-
Save patsevanton/a8abf9af71ece54f1a72973b0802f64a to your computer and use it in GitHub Desktop.
Revisions
-
patsevanton created this gist
Nov 5, 2022 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,444 @@ --- # 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"