| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- ---
- # Source: cassandra/templates/cassandra-secret.yaml
- apiVersion: v1
- kind: Secret
- metadata:
- name: my-release-cassandra
- namespace: default
- labels:
- app.kubernetes.io/name: cassandra
- helm.sh/chart: cassandra-6.0.1
- app.kubernetes.io/instance: my-release
- app.kubernetes.io/managed-by: Helm
- type: Opaque
- data:
- cassandra-password: "SFVZRzR2VU4zaQ=="
- ---
- # Source: cassandra/templates/headless-svc.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: my-release-cassandra-headless
- namespace: default
- labels:
- app.kubernetes.io/name: cassandra
- helm.sh/chart: cassandra-6.0.1
- app.kubernetes.io/instance: my-release
- app.kubernetes.io/managed-by: Helm
- 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
- - name: thrift
- port: 9160
- targetPort: thrift
- selector:
- app.kubernetes.io/name: cassandra
- app.kubernetes.io/instance: my-release
- ---
- # Source: cassandra/templates/service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- name: my-release-cassandra
- namespace: default
- labels:
- app.kubernetes.io/name: cassandra
- helm.sh/chart: cassandra-6.0.1
- app.kubernetes.io/instance: my-release
- app.kubernetes.io/managed-by: Helm
- spec:
- type: ClusterIP
- ports:
- - name: cql
- port: 9042
- targetPort: cql
- nodePort: null
- - name: thrift
- port: 9160
- targetPort: thrift
- nodePort: null
- - name: metrics
- port: 8080
- nodePort: null
- selector:
- app.kubernetes.io/name: cassandra
- app.kubernetes.io/instance: my-release
- ---
- # Source: cassandra/templates/statefulset.yaml
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: my-release-cassandra
- namespace: default
- labels:
- app.kubernetes.io/name: cassandra
- helm.sh/chart: cassandra-6.0.1
- app.kubernetes.io/instance: my-release
- app.kubernetes.io/managed-by: Helm
- spec:
- selector:
- matchLabels:
- app.kubernetes.io/name: cassandra
- app.kubernetes.io/instance: my-release
- matchExpressions:
- - { key: tier, operator: In, values: [cache] }
- - { key: environment, operator: NotIn, values: [dev] }
- serviceName: my-release-cassandra-headless
- podManagementPolicy: OrderedReady
- replicas: 2
- updateStrategy:
- type: RollingUpdate
- template:
- metadata:
- labels:
- app.kubernetes.io/name: cassandra
- helm.sh/chart: cassandra-6.0.1
- app.kubernetes.io/instance: my-release
- app.kubernetes.io/managed-by: Helm
- spec:
- affinity:
- podAffinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels:
- app.kubernetes.io/name: cassandra
- app.kubernetes.io/instance: my-release
- namespaces:
- - default
- topologyKey: kubernetes.io/hostname
- weight: 1
- nodeAffinity:
- securityContext:
- fsGroup: 1001
- containers:
- - name: cassandra
- command:
- - bash
- - -ec
- - |
- # Node 0 is the password seeder
- if [[ $HOSTNAME =~ (.*)-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:3.11.8-debian-10-r20
- imagePullPolicy: "IfNotPresent"
- securityContext:
- runAsUser: 1001
- env:
- - name: BITNAMI_DEBUG
- value: "false"
- - name: CASSANDRA_CLUSTER_NAME
- value: cassandra
- - name: CASSANDRA_SEEDS
- value: "my-release-cassandra-0.my-release-cassandra-headless.default.svc.cluster.local"
- - name: CASSANDRA_PASSWORD
- valueFrom:
- secretKeyRef:
- name: my-release-cassandra
- key: cassandra-password
- - name: POD_IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- - name: CASSANDRA_USER
- value: "cassandra"
- - name: CASSANDRA_NUM_TOKENS
- value: "256"
- - name: CASSANDRA_DATACENTER
- value: dc1
- - name: CASSANDRA_ENDPOINT_SNITCH
- value: SimpleSnitch
- - name: CASSANDRA_RACK
- value: rack1
- - name: CASSANDRA_ENABLE_RPC
- value: "true"
- envFrom:
- livenessProbe:
- exec:
- command:
- - /bin/bash
- - -ec
- - |
- nodetool status
- initialDelaySeconds: 60
- periodSeconds: 30
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- readinessProbe:
- exec:
- command:
- - /bin/bash
- - -ec
- - |
- nodetool status | grep -E "^UN\\s+${POD_IP}"
- initialDelaySeconds: 60
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- ports:
- - name: intra
- containerPort: 7000
- - name: tls
- containerPort: 7001
- - name: jmx
- containerPort: 7199
- - name: cql
- containerPort: 9042
- - name: thrift
- containerPort: 9160
- resources:
- limits: {}
- requests: {}
- volumeMounts:
- - name: data
- mountPath: /bitnami/cassandra
- volumes:
- - name: config-volume
- configMap:
- name: config-example
- volumeClaimTemplates:
- - metadata:
- name: data
- labels:
- app.kubernetes.io/name: cassandra
- app.kubernetes.io/instance: my-release
- spec:
- accessModes:
- - "ReadWriteOnce"
- resources:
- requests:
- storage: "8Gi"
|