1. mysql.yaml
---------------------------------------------------------------------------------------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:8
ports:
- containerPort: 3310
env:
- name: MYSQL_DATABASE
valueFrom:
secretKeyRef:
name: secret
key: MYSQL_DATABASE
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: secret
key: MYSQL_ROOT_PASSWORD
---
apiVersion: v1
kind: Secret
metadata:
name: secret
stringData:
MYSQL_ROOT_PASSWORD: P@ssw0rd
MYSQL_USER: root
MYSQL_DATABASE: 'assignment'
MYSQL_PASSWORD: P@ssw0rd
2. secret.yaml
---------------------------------------------------------------------------------------------------------
apiVersion: v1
kind: Secret
metadata:
name: mysql-sec
type: Opaque
data:
ROOT_PASSWORD: UEBzc3cwcmQ=
USERNAME: cm9vdA==
DATABASE: YXNzaWdubWVudA==
PASSWORD: UEBzc3cwcmQ=
3.dbservice.yaml
---------------------------------------------------------------------------------------------------------
apiVersion: v1
kind: Service
apiVersion: v1
metadata:
name: mysql
spec:
selector:
app: mysql
type: ClusterIP
ports:
- protocol: TCP
port: 3306
targetPort: 3306
4.webapp.yaml
---------------------------------------------------------------------------------------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deployment
spec:
selector:
matchLabels:
app: web-deployment
replicas: 1
template:
metadata:
labels:
app: web-deployment
spec:
# initContainers:
# - name: check-db
# image: busybox:1.28
# command: ['sh', '-c', 'until nslookup db; do echo waiting for db; sleep 2; done;']
containers:
- name: web-deployment
image: replace/maven:200821-937849f
envFrom:
- configMapRef:
name: myapp-env
ports:
- containerPort: 8090
---
apiVersion: v1
kind: ConfigMap
metadata:
name: myapp-env
data:
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: P@ssw0rd
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/askubsignment?allowPublicKeyRetrieval=true
6. webappservice
---------------------------------------------------------------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: web-deployment
spec:
selector:
app: web-deployment
type: NodePort
ports:
- protocol: TCP
port: 8090
targetPort: 8090
nodePort: 30020
7.ingress.yaml
---------------------------------------------------------------------------------------------------------
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-webapp
spec:
tls:
- secretName: replace-webdeployment-tls
hosts:
- replace.web-deployment
rules:
- host: replace.web-deployment
http:
paths:
- path: /
backend:
serviceName: web-deployment
servicePort: 8090
---------------------------------------------------------------------------------------------------------
No comments:
Post a Comment