apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: clickhouse-data-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-path
  resources:
    requests:
      storage: 100Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: clickhouse-log-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-path
  resources:
    requests:
      storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nocodelytics-clickhouse
spec:
  replicas: 1
  selector:
    matchLabels:
      ms: nocodelytics-clickhouse
  template:
    metadata:
      labels:
        ms: nocodelytics-clickhouse
    spec:
      containers:
        - name: nocodelytics-clickhouse
          imagePullPolicy: Always
          image: clickhouse/clickhouse-server
          volumeMounts:
            - name: data-volv
              mountPath: /var/lib/clickhouse/
            - name: log-volv
              mountPath: /var/log/clickhouse-server/
            - name: clickhouse-config
              mountPath: /etc/clickhouse-server/config.xml
              subPath: config.xml
          resources:
            requests:
              memory: "1Gi"
              cpu: "200m"
              ephemeral-storage: "1Mi"
            limits:
              memory: "1Gi"
              cpu: "200m"
              ephemeral-storage: "1Mi"
      volumes:
        - name: data-volv
          persistentVolumeClaim:
            claimName: clickhouse-data-pvc
        - name: log-volv
          persistentVolumeClaim:
            claimName: clickhouse-log-pvc
        - name: clickhouse-config
          configMap:
            name: clickhouse-config
      nodeSelector:
        kubernetes.io/arch: arm64
      tolerations:
        - key: "arch"
          operator: "Equal"
          value: "arm64"
          effect: "NoSchedule"
---
apiVersion: v1
kind: Service
metadata:
  name: nocodelytics-clickhouse
spec:
  type: NodePort
  selector:
    ms: nocodelytics-clickhouse
  ports:
    - port: 9000
      name: "clickhouse-client"
      targetPort: 9000
      nodePort: 31006
    - port: 8123
      name: "clickhouse-http"
      targetPort: 8123
      nodePort: 31007