diff --git a/crm/crm.yaml b/crm/crm.yaml new file mode 100644 index 0000000..52ba14e --- /dev/null +++ b/crm/crm.yaml @@ -0,0 +1,180 @@ +# ========================================== +# MONICA CRM (OFFICIAL DOCKER STRUCTURE) +# ========================================== + +# ------------------------ +# DATABASE STORAGE +# ------------------------ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: monica-db-pvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: microk8s-hostpath + resources: + requests: + storage: 2Gi + +# ------------------------ +# MONICA STORAGE +# ------------------------ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: monica-storage-pvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: microk8s-hostpath + resources: + requests: + storage: 1Gi + +# ------------------------ +# MARIADB +# ------------------------ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: monica-db +spec: + replicas: 1 + selector: + matchLabels: + app: monica-db + template: + metadata: + labels: + app: monica-db + spec: + nodeSelector: + kubernetes.io/hostname: mist + containers: + - name: mariadb + image: mariadb:10.11 + env: + - name: MYSQL_ROOT_PASSWORD + value: rootpassword + - name: MYSQL_DATABASE + value: monica + - name: MYSQL_USER + value: monica + - name: MYSQL_PASSWORD + value: monica_password + volumeMounts: + - mountPath: /var/lib/mysql + name: db-storage + volumes: + - name: db-storage + persistentVolumeClaim: + claimName: monica-db-pvc + +--- +apiVersion: v1 +kind: Service +metadata: + name: monica-db +spec: + selector: + app: monica-db + ports: + - port: 3306 + +# ------------------------ +# MONICA APP +# ------------------------ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: monica +spec: + replicas: 1 + selector: + matchLabels: + app: monica + template: + metadata: + labels: + app: monica + spec: + nodeSelector: + kubernetes.io/hostname: mist + containers: + - name: monica + image: monica:apache + env: + - name: APP_ENV + value: production + - name: APP_DEBUG + value: "false" + - name: APP_URL + value: https://crm.juntekim.com + - name: APP_KEY + value: base64:EKAoON4NgmB9cOZCLSG0z+fy5KYtMKXL6m1AKBBdeOU= + - name: DB_CONNECTION + value: mysql + - name: DB_HOST + value: monica-db + - name: DB_PORT + value: "3306" + - name: DB_DATABASE + value: monica + - name: DB_USERNAME + value: monica + - name: DB_PASSWORD + value: monica_password + - name: CACHE_DRIVER + value: database + - name: SESSION_DRIVER + value: database + - name: QUEUE_CONNECTION + value: database + ports: + - containerPort: 80 + volumeMounts: + - mountPath: /var/www/html/storage + name: monica-storage + volumes: + - name: monica-storage + persistentVolumeClaim: + claimName: monica-storage-pvc + +--- +apiVersion: v1 +kind: Service +metadata: + name: monica +spec: + selector: + app: monica + ports: + - port: 80 + targetPort: 80 + +# ------------------------ +# TRAEFIK INGRESS +# ------------------------ +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: monica-ingress +spec: + entryPoints: + - websecure + routes: + - match: Host(`crm.juntekim.com`) + kind: Rule + services: + - name: monica + port: 80 + tls: + certResolver: myresolver + domains: + - main: crm.juntekim.com diff --git a/draw/draw.yaml b/draw/draw.yaml new file mode 100644 index 0000000..fb4a523 --- /dev/null +++ b/draw/draw.yaml @@ -0,0 +1,65 @@ +# ================================ +# EXCALIDRAW - STATELESS +# https://excalidraw.com +# ================================ + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: excalidraw + labels: + app: excalidraw +spec: + replicas: 1 + selector: + matchLabels: + app: excalidraw + template: + metadata: + labels: + app: excalidraw + spec: + containers: + - name: excalidraw + image: excalidraw/excalidraw:latest + ports: + - containerPort: 80 + resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "300m" + memory: "256Mi" + +--- +apiVersion: v1 +kind: Service +metadata: + name: excalidraw +spec: + selector: + app: excalidraw + ports: + - port: 80 + targetPort: 80 + +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: excalidraw-ingressroute +spec: + entryPoints: + - websecure + routes: + - match: Host(`draw.juntekim.com`) + kind: Rule + services: + - name: excalidraw + port: 80 + tls: + certResolver: myresolver + domains: + - main: draw.juntekim.com diff --git a/juntekim_frontend/deployment/ingressroute.yml b/juntekim_frontend/deployment/ingressroute.yml index e7bf7c4..078c93b 100644 --- a/juntekim_frontend/deployment/ingressroute.yml +++ b/juntekim_frontend/deployment/ingressroute.yml @@ -16,4 +16,6 @@ spec: tls: certResolver: myresolver domains: - - main: ${HOSTNAME} \ No newline at end of file + - main: ${HOSTNAME} + sans: + - www.${HOSTNAME} \ No newline at end of file diff --git a/pdf/pdf.yaml b/pdf/pdf.yaml new file mode 100644 index 0000000..17ff61a --- /dev/null +++ b/pdf/pdf.yaml @@ -0,0 +1,68 @@ +# ================================ +# STIRLING PDF - STATELESS +# https://github.com/Stirling-Tools/Stirling-PDF +# ================================ + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: stirling-pdf + labels: + app: stirling-pdf +spec: + replicas: 1 + selector: + matchLabels: + app: stirling-pdf + template: + metadata: + labels: + app: stirling-pdf + spec: + containers: + - name: stirling-pdf + image: frooodle/s-pdf:latest + ports: + - containerPort: 8080 + env: + - name: DOCKER_ENABLE_SECURITY + value: "false" + resources: + requests: + cpu: "200m" + memory: "512Mi" + limits: + cpu: "1" + memory: "1Gi" + +--- +apiVersion: v1 +kind: Service +metadata: + name: stirling-pdf +spec: + selector: + app: stirling-pdf + ports: + - port: 8080 + targetPort: 8080 + +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: stirling-pdf-ingressroute +spec: + entryPoints: + - websecure + routes: + - match: Host(`pdf.juntekim.com`) + kind: Rule + services: + - name: stirling-pdf + port: 8080 + tls: + certResolver: myresolver + domains: + - main: pdf.juntekim.com diff --git a/uptime-kuma/uptime-kuma.yaml b/uptime-kuma/uptime-kuma.yaml new file mode 100644 index 0000000..daa911e --- /dev/null +++ b/uptime-kuma/uptime-kuma.yaml @@ -0,0 +1,109 @@ +# ================================ +# UPTIME KUMA - SIMPLE DEPLOYMENT +# https://uptime.kuma.pet/?ref=selfh.st +# ================================ + +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: uptime-kuma-pv +spec: + capacity: + storage: 500Mi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: uptime-kuma-local + local: + path: /home/kimjunte/k8s_storage/uptime-kuma + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - mist + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: uptime-kuma-pvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: uptime-kuma-local + resources: + requests: + storage: 500Mi + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: uptime-kuma + labels: + app: uptime-kuma +spec: + replicas: 1 + selector: + matchLabels: + app: uptime-kuma + template: + metadata: + labels: + app: uptime-kuma + spec: + nodeSelector: + kubernetes.io/hostname: mist + containers: + - name: uptime-kuma + image: louislam/uptime-kuma:latest + ports: + - containerPort: 3001 + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + volumeMounts: + - name: uptime-kuma-data + mountPath: /app/data + volumes: + - name: uptime-kuma-data + persistentVolumeClaim: + claimName: uptime-kuma-pvc + +--- +apiVersion: v1 +kind: Service +metadata: + name: uptime-kuma +spec: + selector: + app: uptime-kuma + ports: + - port: 3001 + targetPort: 3001 + +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: uptime-kuma-ingressroute +spec: + entryPoints: + - websecure + routes: + - match: Host(`uptime.kuma.juntekim.com`) + kind: Rule + services: + - name: uptime-kuma + port: 3001 + tls: + certResolver: myresolver + domains: + - main: uptime.kuma.juntekim.com