--- # MySQL Deployment apiVersion: apps/v1 kind: Deployment metadata: name: mysql namespace: user-microservice spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:latest env: - name: MYSQL_USER value: admin - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql-password key: MYSQL_PASSWORD - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-root-password key: MYSQL_ROOT_PASSWORD - name: MYSQL_DATABASE value: user-microservice 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: "azure-kvname" --- # MySQL Service apiVersion: v1 kind: Service metadata: name: db namespace: user-microservice spec: ports: - port: 3306 selector: app: mysql --- # API Deployment apiVersion: apps/v1 kind: Deployment metadata: name: api namespace: user-microservice spec: replicas: 1 selector: matchLabels: app: api template: metadata: labels: app: api spec: containers: - name: api image: marcin00.azurecr.io/user-microservice:76a351710fffe2be1ae10471bc1a2f511f481126 ports: - containerPort: 80 env: - name: SQLALCHEMY_DATABASE_URI valueFrom: secretKeyRef: name: 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: "azure-kvname" --- # API Service apiVersion: v1 kind: Service metadata: name: api namespace: user-microservice spec: selector: app: api ports: - port: 80 targetPort: 80