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