From db2f884e161829657969a46af60614417fc1b707 Mon Sep 17 00:00:00 2001 From: xavor Date: Sat, 3 May 2025 21:55:43 +0000 Subject: [PATCH] Primer commit --- deployments/espocrm.yaml | 42 ++++++++++++++++++++++++++++++++++++++++ deployments/mysql.yaml | 34 ++++++++++++++++++++++++++++++++ ingress/ingress.yaml | 27 ++++++++++++++++++++++++++ kustomization.yaml | 14 ++++++++++++++ namespace.yaml | 4 ++++ pvc/espocrm-pvc.yaml | 12 ++++++++++++ pvc/mysql-pvc.yaml | 12 ++++++++++++ services/espocrm.yaml | 13 +++++++++++++ services/mysql.yaml | 13 +++++++++++++ 9 files changed, 171 insertions(+) create mode 100644 deployments/espocrm.yaml create mode 100644 deployments/mysql.yaml create mode 100644 ingress/ingress.yaml create mode 100644 kustomization.yaml create mode 100644 namespace.yaml create mode 100644 pvc/espocrm-pvc.yaml create mode 100644 pvc/mysql-pvc.yaml create mode 100644 services/espocrm.yaml create mode 100644 services/mysql.yaml diff --git a/deployments/espocrm.yaml b/deployments/espocrm.yaml new file mode 100644 index 0000000..050b649 --- /dev/null +++ b/deployments/espocrm.yaml @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: espocrm + namespace: espocrm +spec: + replicas: 1 + selector: + matchLabels: + app: espocrm + template: + metadata: + labels: + app: espocrm + spec: + containers: + - name: espocrm + image: espocrm/espocrm + ports: + - containerPort: 80 + env: + - name: ESPOCRM_DATABASE_PLATFORM + value: Mysql + - name: ESPOCRM_DATABASE_HOST + value: mysql + - name: ESPOCRM_DATABASE_USER + value: espocrm + - name: ESPOCRM_DATABASE_PASSWORD + value: database_password + - name: ESPOCRM_ADMIN_USERNAME + value: admin + - name: ESPOCRM_ADMIN_PASSWORD + value: password + - name: ESPOCRM_SITE_URL + value: "https://espocrm.avgx.org" + volumeMounts: + - name: espocrm-data + mountPath: /var/www/html + volumes: + - name: espocrm-data + persistentVolumeClaim: + claimName: espocrm-pvc diff --git a/deployments/mysql.yaml b/deployments/mysql.yaml new file mode 100644 index 0000000..cdad190 --- /dev/null +++ b/deployments/mysql.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mysql + namespace: espocrm +spec: + replicas: 1 + selector: + matchLabels: + app: mysql + template: + metadata: + labels: + app: mysql + spec: + containers: + - name: mysql + image: mysql:8 + env: + - name: MYSQL_ROOT_PASSWORD + value: root_password + - name: MYSQL_DATABASE + value: espocrm + - name: MYSQL_USER + value: espocrm + - name: MYSQL_PASSWORD + value: database_password + volumeMounts: + - name: mysql-data + mountPath: /var/lib/mysql + volumes: + - name: mysql-data + persistentVolumeClaim: + claimName: mysql-pvc diff --git a/ingress/ingress.yaml b/ingress/ingress.yaml new file mode 100644 index 0000000..48a11ff --- /dev/null +++ b/ingress/ingress.yaml @@ -0,0 +1,27 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: espocrm-ingress + namespace: espocrm + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" +# nginx.ingress.kubernetes.io/ssl-redirect: "true" + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + nginx.ingress.kubernetes.io/enable-websockets: "true" +spec: + ingressClassName: nginx + tls: + - hosts: + - espocrm.avgx.org + secretName: espocrm-tls + rules: + - host: espocrm.avgx.org + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: espocrm + port: + number: 80 diff --git a/kustomization.yaml b/kustomization.yaml new file mode 100644 index 0000000..00b4f9d --- /dev/null +++ b/kustomization.yaml @@ -0,0 +1,14 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: espocrm + +resources: + - namespace.yaml + - deployments/espocrm.yaml + - deployments/mysql.yaml + - services/espocrm.yaml + - services/mysql.yaml + - pvc/espocrm-pvc.yaml + - pvc/mysql-pvc.yaml + - ingress/ingress.yaml diff --git a/namespace.yaml b/namespace.yaml new file mode 100644 index 0000000..4d309ab --- /dev/null +++ b/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: espocrm diff --git a/pvc/espocrm-pvc.yaml b/pvc/espocrm-pvc.yaml new file mode 100644 index 0000000..e8d6d92 --- /dev/null +++ b/pvc/espocrm-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: espocrm-pvc + namespace: espocrm +spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs-manabo + resources: + requests: + storage: 1Gi diff --git a/pvc/mysql-pvc.yaml b/pvc/mysql-pvc.yaml new file mode 100644 index 0000000..dd14b49 --- /dev/null +++ b/pvc/mysql-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-pvc + namespace: espocrm +spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs-manabo + resources: + requests: + storage: 1Gi diff --git a/services/espocrm.yaml b/services/espocrm.yaml new file mode 100644 index 0000000..0d24340 --- /dev/null +++ b/services/espocrm.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: espocrm + namespace: espocrm +spec: + selector: + app: espocrm + ports: + - protocol: TCP + port: 80 + targetPort: 80 + type: ClusterIP diff --git a/services/mysql.yaml b/services/mysql.yaml new file mode 100644 index 0000000..66bcce1 --- /dev/null +++ b/services/mysql.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: mysql + namespace: espocrm +spec: + selector: + app: mysql + ports: + - protocol: TCP + port: 3306 + targetPort: 3306 + clusterIP: None