github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/applications/cassandra/cassandra-manifest.yaml (about) 1 --- 2 apiVersion: v1 3 kind: Namespace 4 metadata: 5 name: cassandra-system 6 labels: 7 app.kubernetes.io/name: cassandra 8 app.kubernetes.io/instance: my-cassandra 9 --- 10 # Source: cassandra/templates/serviceaccount.yaml 11 apiVersion: v1 12 kind: ServiceAccount 13 metadata: 14 name: my-cassandra 15 namespace: cassandra-system 16 labels: 17 app.kubernetes.io/name: cassandra 18 app.kubernetes.io/instance: my-cassandra 19 --- 20 # Source: cassandra/templates/cassandra-secret.yaml 21 apiVersion: v1 22 kind: Secret 23 metadata: 24 name: my-cassandra 25 namespace: cassandra-system 26 labels: 27 app.kubernetes.io/name: cassandra 28 app.kubernetes.io/instance: my-cassandra 29 30 type: Opaque 31 data: 32 cassandra-password: "dXd3YzdHSVlpZQ==" 33 --- 34 # Source: cassandra/templates/headless-svc.yaml 35 apiVersion: v1 36 kind: Service 37 metadata: 38 name: my-cassandra-headless 39 namespace: cassandra-system 40 labels: 41 app.kubernetes.io/name: cassandra 42 app.kubernetes.io/instance: my-cassandra 43 44 spec: 45 clusterIP: None 46 publishNotReadyAddresses: true 47 ports: 48 - name: intra 49 port: 7000 50 targetPort: intra 51 - name: tls 52 port: 7001 53 targetPort: tls 54 - name: jmx 55 port: 7199 56 targetPort: jmx 57 - name: cql 58 port: 9042 59 targetPort: cql 60 - name: thrift 61 port: 9160 62 targetPort: thrift 63 selector: 64 app.kubernetes.io/name: cassandra 65 app.kubernetes.io/instance: my-cassandra 66 --- 67 # Source: cassandra/templates/service.yaml 68 apiVersion: v1 69 kind: Service 70 metadata: 71 name: my-cassandra 72 namespace: cassandra-system 73 labels: 74 app.kubernetes.io/name: cassandra 75 app.kubernetes.io/instance: my-cassandra 76 77 spec: 78 type: ClusterIP 79 ports: 80 - name: cql 81 port: 9042 82 targetPort: cql 83 - name: thrift 84 port: 9160 85 targetPort: thrift 86 - name: metrics 87 port: 8080 88 selector: 89 app.kubernetes.io/name: cassandra 90 app.kubernetes.io/instance: my-cassandra 91 --- 92 # Source: cassandra/templates/statefulset.yaml 93 apiVersion: apps/v1 94 kind: StatefulSet 95 metadata: 96 name: my-cassandra 97 namespace: cassandra-system 98 labels: 99 app.kubernetes.io/name: cassandra 100 app.kubernetes.io/instance: my-cassandra 101 spec: 102 selector: 103 matchLabels: 104 app.kubernetes.io/name: cassandra 105 app.kubernetes.io/instance: my-cassandra 106 serviceName: my-cassandra-headless 107 podManagementPolicy: OrderedReady 108 replicas: 3 109 updateStrategy: 110 type: RollingUpdate 111 template: 112 metadata: 113 labels: 114 app.kubernetes.io/name: cassandra 115 app.kubernetes.io/instance: my-cassandra 116 spec: 117 serviceAccountName: my-cassandra 118 affinity: 119 podAntiAffinity: 120 preferredDuringSchedulingIgnoredDuringExecution: 121 - podAffinityTerm: 122 labelSelector: 123 matchLabels: 124 app.kubernetes.io/name: cassandra 125 app.kubernetes.io/instance: my-cassandra 126 namespaces: 127 - "cassandra-system" 128 topologyKey: kubernetes.io/hostname 129 weight: 1 130 securityContext: 131 fsGroup: 1001 132 containers: 133 - name: cassandra 134 command: 135 - bash 136 - -ec 137 - | 138 # Node 0 is the password seeder 139 if [[ $POD_NAME =~ (.*)-0$ ]]; then 140 echo "Setting node as password seeder" 141 export CASSANDRA_PASSWORD_SEEDER=yes 142 else 143 # Only node 0 will execute the startup initdb scripts 144 export CASSANDRA_IGNORE_INITDB_SCRIPTS=1 145 fi 146 /opt/bitnami/scripts/cassandra/entrypoint.sh /opt/bitnami/scripts/cassandra/run.sh 147 image: docker.io/bitnami/cassandra:4.0.0-debian-10-r0 148 imagePullPolicy: "IfNotPresent" 149 securityContext: 150 runAsUser: 1001 151 env: 152 - name: BITNAMI_DEBUG 153 value: "false" 154 - name: CASSANDRA_CLUSTER_NAME 155 value: cassandra 156 - name: CASSANDRA_SEEDS 157 value: "my-cassandra-0.my-cassandra-headless.cassandra-system.svc.cluster.local" 158 - name: CASSANDRA_PASSWORD 159 valueFrom: 160 secretKeyRef: 161 name: my-cassandra 162 key: cassandra-password 163 - name: POD_IP 164 valueFrom: 165 fieldRef: 166 fieldPath: status.podIP 167 - name: POD_NAME 168 valueFrom: 169 fieldRef: 170 fieldPath: metadata.name 171 - name: CASSANDRA_USER 172 value: "cassandra" 173 - name: CASSANDRA_NUM_TOKENS 174 value: "256" 175 - name: CASSANDRA_DATACENTER 176 value: dc1 177 - name: CASSANDRA_ENDPOINT_SNITCH 178 value: SimpleSnitch 179 - name: CASSANDRA_KEYSTORE_LOCATION 180 value: "/opt/bitnami/cassandra/certs/keystore" 181 - name: CASSANDRA_TRUSTSTORE_LOCATION 182 value: "/opt/bitnami/cassandra/certs/truststore" 183 - name: CASSANDRA_RACK 184 value: rack1 185 - name: CASSANDRA_ENABLE_RPC 186 value: "true" 187 - name: CASSANDRA_TRANSPORT_PORT_NUMBER 188 value: "7000" 189 - name: CASSANDRA_JMX_PORT_NUMBER 190 value: "7199" 191 - name: CASSANDRA_CQL_PORT_NUMBER 192 value: "9042" 193 livenessProbe: 194 exec: 195 command: 196 - /bin/bash 197 - -ec 198 - | 199 nodetool status 200 initialDelaySeconds: 60 201 periodSeconds: 30 202 timeoutSeconds: 5 203 successThreshold: 1 204 failureThreshold: 5 205 readinessProbe: 206 exec: 207 command: 208 - /bin/bash 209 - -ec 210 - | 211 nodetool status | grep -E "^UN\\s+${POD_IP}" 212 initialDelaySeconds: 60 213 periodSeconds: 10 214 timeoutSeconds: 5 215 successThreshold: 1 216 failureThreshold: 5 217 ports: 218 - name: intra 219 containerPort: 7000 220 - name: tls 221 containerPort: 7001 222 - name: jmx 223 containerPort: 7199 224 - name: cql 225 containerPort: 9042 226 - name: thrift 227 containerPort: 9160 228 resources: 229 limits: {} 230 requests: {} 231 volumeMounts: 232 - name: data 233 mountPath: /bitnami/cassandra 234 volumeClaimTemplates: 235 - metadata: 236 name: data 237 labels: 238 app.kubernetes.io/name: cassandra 239 app.kubernetes.io/instance: my-cassandra 240 spec: 241 accessModes: 242 - "ReadWriteOnce" 243 resources: 244 requests: 245 storage: "50Gi" 246 storageClassName: local-hostpath