From 8bbb5baefc2b088458bd253f2e790da3bc2b7139 Mon Sep 17 00:00:00 2001 From: victorc Date: Thu, 26 Sep 2024 10:47:43 +0000 Subject: [PATCH] Add myapp-k8s.yaml --- myapp-k8s.yaml | 153 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 myapp-k8s.yaml diff --git a/myapp-k8s.yaml b/myapp-k8s.yaml new file mode 100644 index 0000000..4920cb7 --- /dev/null +++ b/myapp-k8s.yaml @@ -0,0 +1,153 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: myapp-web-pv # web content files +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 1Gi + hostPath: + path: /srv/pv/myapp/web + type: DirectoryOrCreate + storageClassName: '' + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - kubix +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: myapp-db-pv # database files +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 1Gi + hostPath: + path: /srv/pv/myapp/db + type: DirectoryOrCreate + storageClassName: '' + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - kubix +--- +apiVersion: v1 +kind: Namespace +metadata: + name: playground +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: myapp-web-pvc + namespace: playground +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + volumeName: myapp-web-pv + storageClassName: '' +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: myapp-db-pvc + namespace: playground +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + volumeName: myapp-db-pv + storageClassName: '' +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: myapp + namespace: playground +spec: + replicas: 1 + selector: + matchLabels: + app: myapp + template: + metadata: + labels: + app: myapp + spec: + containers: + - name: myapp-web + image: gitea.kubix.siatel.ro/siatel/php:8.1-apache-mysqli + ports: + - containerPort: 80 + volumeMounts: + - name: myapp-web-pv + mountPath: /var/www/html + - name: myapp-db + image: mysql:9 + ports: + - containerPort: 3306 + volumeMounts: + - name: myapp-db-pv + mountPath: /var/lib/mysql + env: + - name: MYSQL_ROOT_PASSWORD + value: secret123 # replace as desired + - name: MYSQL_DATABASE + value: mydatabase # replace as desired + volumes: + - name: myapp-web-pv + persistentVolumeClaim: + claimName: myapp-web-pvc + - name: myapp-db-pv + persistentVolumeClaim: + claimName: myapp-db-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: myapp-service + namespace: playground +spec: + type: ClusterIP + selector: + app: myapp + ports: + - protocol: TCP + port: 80 + targetPort: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: myapp-ingress + namespace: playground + annotations: + kubernetes.io/ingress.class: "nginx" +spec: + rules: + - host: myapp.siatel.ro + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: myapp-service + port: + number: 80