--- # Namespace (opcjonalnie) apiVersion: v1 kind: Namespace metadata: name: todolist --- # MySQL Deployment apiVersion: apps/v1 kind: Deployment metadata: name: mysql namespace: todolist spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:lts env: - name: MYSQL_USER value: guflwhvcmw - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: todolist-mysql-password key: MYSQL_PASSWORD - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: todolist-mysql-root-password key: MYSQL_ROOT_PASSWORD - name: MYSQL_DATABASE value: todolist ports: - containerPort: 3306 volumeMounts: - name: mysql-pv mountPath: /var/lib/mysql - name: secrets-store mountPath: "/mnt/secrets" readOnly: true volumes: - name: mysql-pv emptyDir: {} - name: secrets-store csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "dev-aks" --- # MySQL Service apiVersion: v1 kind: Service metadata: name: db namespace: todolist spec: ports: - port: 3306 selector: app: mysql --- # API Deployment apiVersion: apps/v1 kind: Deployment metadata: name: todolist-api namespace: todolist spec: replicas: 1 selector: matchLabels: app: todolist-api template: metadata: labels: app: todolist-api spec: containers: - name: api image: marcin00.azurecr.io/todolist-api:1.1 ports: - containerPort: 80 env: - name: SQLALCHEMY_DATABASE_URI valueFrom: secretKeyRef: name: todolist-sqlalchemy-database-uri key: SQLALCHEMY_DATABASE_URI volumeMounts: - name: secrets-store mountPath: "/mnt/secrets" readOnly: true volumes: - name: secrets-store csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "dev-aks" --- # API Service apiVersion: v1 kind: Service metadata: name: api namespace: todolist spec: selector: app: todolist-api ports: - port: 80 targetPort: 80 --- # Frontend Deployment apiVersion: apps/v1 kind: Deployment metadata: name: todolist-frontend namespace: todolist spec: replicas: 1 selector: matchLabels: app: todolist-frontend template: metadata: labels: app: todolist-frontend spec: containers: - name: frontend image: marcin00.azurecr.io/todolist-frontend:1.1 ports: - containerPort: 80 --- # Frontend Service apiVersion: v1 kind: Service metadata: name: todolist-frontend namespace: todolist spec: selector: app: todolist-frontend ports: - port: 80 targetPort: 80 protocol: TCP