diff --git a/Makefile b/Makefile index 116ccfd..298927e 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ MINIO_PV_FILE := kubernetes/storage/minio-pv.yaml MINIO_DEPLOYMENT_FILE := kubernetes/storage/minio-deployment.yaml MINIO_SERVICE_FILE := kubernetes/services/minio-service.yaml -MANAGER_SERVICE_FILE := kubernetes/service/manager-service.yaml +MANAGER_SERVICE_FILE := kubernetes/services/manager-service.yaml MANAGER_DEPLOYMENT_FILE := kubernetes/deployments/manager-service-statefull-set.yaml @@ -24,6 +24,8 @@ ROLES_CREATE_FILE := kubernetes/roles/job-creator-role.yaml ROLES_ROLESBIND := kubernetes/roles/job-creator-rolebinding.yaml + + # Targets .PHONY: deploy @@ -33,7 +35,7 @@ deploy: kubectl create -f $(AUTH_DEPLOYMENT_FILE) kubectl create -f $(AUTH_SERVICE_FILE) kubectl create -f $(CASSANDRA_SERVICE_FILE) - kubectl create -f $(CASSANDRA_STORAGE_FILE) + #kubectl create -f $(CASSANDRA_STORAGE_FILE) kubectl create -f $(CASSANDRA_DEPLOYMENT_FILE) kubectl create -f $(MINIO_STORAGE_FILE) kubectl create -f $(MINIO_PV_FILE) @@ -47,6 +49,7 @@ deploy: + .PHONY: clean clean: @@ -65,4 +68,4 @@ clean: kubectl delete -f $(MANAGER_SERVICE_FILE) kubectl delete -f $(MANAGER_DEPLOYMENT_FILE) kubectl delete -f $(ROLES_CREATE_FILE) - kubectl delete -f $(ROLES_ROLESBIND) \ No newline at end of file + kubectl delete -f $(ROLES_ROLESBIND) diff --git a/kubernetes/dds/cassandra-statefulset.yaml b/kubernetes/dds/cassandra-statefulset.yaml index 593da04..fce6945 100644 --- a/kubernetes/dds/cassandra-statefulset.yaml +++ b/kubernetes/dds/cassandra-statefulset.yaml @@ -29,11 +29,11 @@ spec: name: cql env: - name: CASSANDRA_SEEDS - value: cassandra-0.cassandra.dena.svc.cluster.local + value: "cassandra-0.cassandra.dena.svc.cluster.local" - name: MAX_HEAP_SIZE - value: 256M + value: "256M" - name: HEAP_NEWSIZE - value: 100M + value: "100M" - name: CASSANDRA_CLUSTER_NAME value: "Cassandra" - name: CASSANDRA_DC @@ -41,18 +41,31 @@ spec: - name: CASSANDRA_RACK value: "Rack1" - name: CASSANDRA_ENDPOINT_SNITCH - value: GossipingPropertyFileSnitch + value: "GossipingPropertyFileSnitch" + lifecycle: + postStart: + exec: + command: ["/bin/sh", "-c", + "echo \"Waiting for Cassandra to start...\"; + while ! echo \"DESCRIBE KEYSPACES;\" | cqlsh; do sleep 2; done; + echo \"Cassandra is ready! Initializing schema...\"; + cqlsh -e \"CREATE KEYSPACE IF NOT EXISTS admins WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; + USE admins; + CREATE TABLE IF NOT EXISTS users (user_id UUID PRIMARY KEY, username TEXT, password TEXT); + INSERT INTO users (user_id, username, password) VALUES (uuid(), 'admin', 'admin') IF NOT EXISTS; + CREATE TABLE IF NOT EXISTS roles (role_name TEXT PRIMARY KEY, permissions SET); + INSERT INTO roles (role_name, permissions) VALUES ('admin', {'CREATE', 'ALTER', 'DROP', 'SELECT', 'MODIFY'}) IF NOT EXISTS;\""] volumeMounts: - name: cassandra-data - mountPath: /var/lib/cassandra/data + mountPath: "/var/lib/cassandra/data" volumeClaimTemplates: - metadata: name: cassandra-data - namespace: dena - annotations: # comment line if you want to use a StorageClass - volume.beta.kubernetes.io/storage-class: "" # comment line if you want to use a StorageClass or specify which StorageClass + namespace: "dena" + annotations: + volume.beta.kubernetes.io/storage-class: "" spec: accessModes: ["ReadWriteOnce"] resources: requests: - storage: 1Gi + storage: "1Gi" diff --git a/kubernetes/dds/local-volumes.yaml b/kubernetes/dds/local-volumes.yaml index eea7034..e56340e 100644 --- a/kubernetes/dds/local-volumes.yaml +++ b/kubernetes/dds/local-volumes.yaml @@ -14,37 +14,37 @@ spec: hostPath: path: /tmp/data/cassandra-data-1 persistentVolumeReclaimPolicy: Recycle ---- -apiVersion: v1 -kind: PersistentVolume -metadata: - name: cassandra-data-2 - namespace: dena - labels: - type: local - app: cassandra -spec: - capacity: - storage: 1Gi - accessModes: - - ReadWriteOnce - hostPath: - path: /tmp/data/cassandra-data-2 - persistentVolumeReclaimPolicy: Recycle ---- -apiVersion: v1 -kind: PersistentVolume -metadata: - name: cassandra-data-3 - namespace: dena - labels: - type: local - app: cassandra -spec: - capacity: - storage: 1Gi - accessModes: - - ReadWriteOnce - hostPath: - path: /tmp/data/cassandra-data-3 - persistentVolumeReclaimPolicy: Recycle \ No newline at end of file +# --- +# apiVersion: v1 +# kind: PersistentVolume +# metadata: +# name: cassandra-data-2 +# namespace: dena +# labels: +# type: local +# app: cassandra +# spec: +# capacity: +# storage: 1Gi +# accessModes: +# - ReadWriteOnce +# hostPath: +# path: /tmp/data/cassandra-data-2 +# persistentVolumeReclaimPolicy: Recycle +# --- +# apiVersion: v1 +# kind: PersistentVolume +# metadata: +# name: cassandra-data-3 +# namespace: dena +# labels: +# type: local +# app: cassandra +# spec: +# capacity: +# storage: 1Gi +# accessModes: +# - ReadWriteOnce +# hostPath: +# path: /tmp/data/cassandra-data-3 +# persistentVolumeReclaimPolicy: Recycle \ No newline at end of file diff --git a/testing_scripts/tester.sh b/testing_scripts/tester.sh index e5f335d..14fbc47 100755 --- a/testing_scripts/tester.sh +++ b/testing_scripts/tester.sh @@ -82,7 +82,7 @@ kubectl delete -f minio-storage-class.yaml #fix for kubernetes storages -kubectl patch pv cassandra-data-pv-1 -p '{"metadata":{"finalizers":null}}' +kubectl patch pv cassandra-data-1 -p '{"metadata":{"finalizers":null}}' kubectl rollout restart deployment ui-deployment -n dena