# # # The addition below can be executed after the invocation of # the original service_delivery_controller_opnfv.yaml # by invoking: # % kubectl create -f <(istioctl kube-inject --debug -f cassandra.yaml) # # # # Cassandra Statefulset # # Assumption: # - The Cassandra Statefulset right now assumes that # the service is deployed in the 'default' namespace # therefore the environment variable CASSANDRA_SEEDS is set to # "cassandra-0.cassandra.default.svc.cluster.local" below. # if you want to use your own name space other than 'default' # the value becomes: # "cassandra-0.cassandra..svc.cluster.local" # note that this value rely on a functioning DNS on kubernetes to resolve the IP # # This static method can be made dynamic by using Helm # or bash script to replace the namespace on the fly. # # - Cassandra launch only 1 replica in the cluster # to dynamically scale up or down, you can use: # kubectl edit statefulset cassandra # and edit the value of the replica key # # # --- apiVersion: v1 kind: Service metadata: labels: app: cassandra name: cassandra namespace: clover-system spec: clusterIP: None ports: - port: 9042 selector: app: cassandra --- apiVersion: apps/v1 kind: StatefulSet metadata: name: cassandra labels: app: cassandra namespace: clover-system spec: serviceName: cassandra replicas: 1 selector: matchLabels: app: cassandra template: metadata: labels: app: cassandra spec: terminationGracePeriodSeconds: 1800 containers: - name: cassandra image: cassandra:3 imagePullPolicy: Always ports: - containerPort: 7000 name: intra-node - containerPort: 7001 name: tls-intra-node - containerPort: 7199 name: jmx - containerPort: 9042 name: cql resources: limits: cpu: "1000m" memory: 5Gi requests: cpu: "1000m" memory: 5Gi env: - name: MAX_HEAP_SIZE value: 512M - name: HEAP_NEWSIZE value: 100M - name: CASSANDRA_SEEDS value: "cassandra-0.cassandra.clover-system.svc.cluster.local" - name: CASSANDRA_CLUSTER_NAME value: "MyCassandraDemo" - name: CASSANDRA_DC value: "DC1-K8Demo" - name: CASSANDRA_RACK value: "Rack1-K8Demo"