apiVersion: v1 kind: PersistentVolume metadata: name: api-eventbus-pv # namespace: egommerce spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce storageClassName: api-eventbus-pv hostPath: path: "/home/keedosn/.egommerce/kafka" # Ensure this path exists on the node --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: api-eventbus-pvc namespace: egommerce spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: api-eventbus-pv --- apiVersion: v1 kind: Service metadata: name: api-eventbus namespace: egommerce labels: app: api-eventbus spec: type: NodePort selector: app: api-eventbus ports: - name: api-eventbus-main protocol: TCP port: 9092 nodePort: 31200 - name: api-eventbus-ctrl protocol: TCP port: 9093 nodePort: 31299 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: api-eventbus namespace: egommerce spec: serviceName: "api-eventbus" replicas: 1 selector: matchLabels: app: api-eventbus template: metadata: labels: app: api-eventbus spec: containers: - name: api-eventbus image: apache/kafka:latest imagePullPolicy: Always # For future image ports: - containerPort: 9092 name: eventbus-brkr - containerPort: 9093 name: eventbus-ctrl volumeMounts: - name: api-eventbus-storage mountPath: /var/lib/kafka/data env: - name: KAFKA_PROCESS_ROLES value: "broker,controller" - name: KAFKA_CONTROLLER_LISTENER_NAMES value: "CONTROLLER" - name: KAFKA_NODE_ID value: "1" - name: KAFKA_LISTENERS value: "PLAINTEXT://:9092,CONTROLLER://:9093" - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: "1@api-eventbus:9093" - name: KAFKA_ADVERTISED_LISTENERS value: "PLAINTEXT://api-eventbus:9092" - name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR value: "1" - name: KAFKA_LOG_DIRS value: "/var/lib/kafka/data" imagePullSecrets: - name: regcred volumes: - name: api-eventbus-storage persistentVolumeClaim: claimName: api-eventbus-pvc