2.6 YAML files
1. mysql.yaml
apiVersion: v1kind: Servicemetadata: name: lamp-mysql labels: app: lampspec: ports: - port: 3306 selector: app: lamp tier: mysql clusterIP: None---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: mysql-pv-claim labels: app: lampspec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi---apiVersion: apps/v1kind: Deploymentmetadata: name: lamp-mysql labels: app: lampspec: selector: matchLabels: app: lamp tier: mysql strategy: type: Recreate template: metadata: labels: app: lamp tier: mysql spec: containers: - image: mysql:8.0 name: mysql env: - name: MYSQL_ROOT_PASSWORD # value: comp6017credentials valueFrom: secretKeyRef: name: mysql-pass key: password - name: MYSQL_DATABASE value: testdb - name: MYSQL_USER value: testuser - name: MYSQL_PASSWORD # value: comp6017credentials valueFrom: secretKeyRef: name: mysql-pass key: password ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
2. lamp.yaml
apiVersion: v1kind: Servicemetadata: name: lamp labels: app: lampspec: ports: - port: 80 selector: app: lamp tier: frontend type: LoadBalancer---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: lamp-pv-claim labels: app: lampspec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi---apiVersion: apps/v1kind: Deploymentmetadata: name: lamp labels: app: lampspec: selector: matchLabels: app: lamp tier: frontend strategy: type: Recreate template: metadata: labels: app: lamp tier: frontend spec: containers: - image: webdevops/php-apache-dev:latest name: lamp env: - name: LAMP_DB_HOST value: lamp-mysql - name: LAMP_DB_PASSWORD # value: comp6017credentials valueFrom: secretKeyRef: name: mysql-pass key: password - name: LAMP_DB_USER value: testuser ports: - containerPort: 80 name: lamp volumeMounts: - name: lamp-persistent-storage mountPath: /app/files volumes: - name: lamp-persistent-storage persistentVolumeClaim: claimName: lamp-pv-claim
3. kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1kind: Kustomization
secretGenerator: - name: mysql-pass literals: - password=comp6017credentialsresources: - mysql.yaml - lamp.yaml