Skip to content

Commit 197688b

Browse files
committed
[Rajeev] Kubernetes deployment manifests
1 parent e8a202c commit 197688b

4 files changed

+197
-0
lines changed

deployments/kustomization.yaml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# This file should not be checked into Git. It's published only for demonstration purpose.
2+
secretGenerator:
3+
- name: mysql-root-pass
4+
literals:
5+
- password=R00t
6+
- name: mysql-user
7+
literals:
8+
- username=callicoder
9+
- name: mysql-pass
10+
literals:
11+
- password=c@ll1c0d3r
12+
- name: mysql-db
13+
literals:
14+
- database=polls
15+
- name: mysql-url
16+
literals:
17+
- url=jdbc:mysql://polling-app-mysql:3306/polls?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
18+
resources:
19+
- mysql-deployment.yaml
20+
- polling-app-server.yaml

deployments/mysql-deployment.yaml

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: polling-app-mysql
5+
labels:
6+
app: polling-app
7+
spec:
8+
ports:
9+
- port: 3306
10+
selector:
11+
app: polling-app
12+
tier: mysql
13+
clusterIP: None
14+
---
15+
apiVersion: v1
16+
kind: PersistentVolumeClaim
17+
metadata:
18+
name: mysql-pv-claim
19+
labels:
20+
app: polling-app
21+
spec:
22+
accessModes:
23+
- ReadWriteOnce
24+
resources:
25+
requests:
26+
storage: 250Mi
27+
---
28+
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
29+
kind: Deployment
30+
metadata:
31+
name: polling-app-mysql
32+
labels:
33+
app: polling-app
34+
spec:
35+
selector:
36+
matchLabels:
37+
app: polling-app
38+
tier: mysql
39+
strategy:
40+
type: Recreate
41+
template:
42+
metadata:
43+
labels:
44+
app: polling-app
45+
tier: mysql
46+
spec:
47+
containers:
48+
- image: mysql:5.6
49+
name: mysql
50+
env:
51+
- name: MYSQL_ROOT_PASSWORD
52+
valueFrom:
53+
secretKeyRef:
54+
name: mysql-root-pass
55+
key: password
56+
- name: MYSQL_DATABASE
57+
valueFrom:
58+
secretKeyRef:
59+
name: mysql-db
60+
key: database
61+
- name: MYSQL_USER
62+
valueFrom:
63+
secretKeyRef:
64+
name: mysql-user
65+
key: username
66+
- name: MYSQL_PASSWORD
67+
valueFrom:
68+
secretKeyRef:
69+
name: mysql-pass
70+
key: password
71+
ports:
72+
- containerPort: 3306
73+
name: mysql
74+
volumeMounts:
75+
- name: mysql-persistent-storage
76+
mountPath: /var/lib/mysql
77+
volumes:
78+
- name: mysql-persistent-storage
79+
persistentVolumeClaim:
80+
claimName: mysql-pv-claim

deployments/polling-app-client.yaml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: polling-app-client
5+
spec:
6+
replicas: 1
7+
selector:
8+
matchLabels:
9+
name: polling-app-client
10+
template:
11+
metadata:
12+
labels:
13+
name: polling-app-client
14+
spec:
15+
containers:
16+
- name: polling-app-client
17+
image: callicoder/polling-app-client:1.0.0
18+
imagePullPolicy: IfNotPresent
19+
ports:
20+
- name: http
21+
containerPort: 80
22+
resources:
23+
limits:
24+
cpu: 0.2
25+
memory: "10Mi"
26+
---
27+
apiVersion: v1
28+
kind: Service
29+
metadata:
30+
name: polling-app-client
31+
spec:
32+
type: NodePort
33+
selector:
34+
name: polling-app-client
35+
ports:
36+
- name: http
37+
port: 80
38+
targetPort: 80

deployments/polling-app-server.yaml

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: polling-app-server
6+
labels:
7+
app: polling-app-server
8+
spec:
9+
replicas: 1
10+
selector:
11+
matchLabels:
12+
app: polling-app-server
13+
template:
14+
metadata:
15+
labels:
16+
app: polling-app-server
17+
spec:
18+
containers:
19+
- name: polling-app-server
20+
image: callicoder/polling-app-server:1.0.0
21+
imagePullPolicy: IfNotPresent
22+
ports:
23+
- name: http
24+
containerPort: 8080
25+
resources:
26+
limits:
27+
cpu: 0.2
28+
memory: "256Mi"
29+
env:
30+
- name: SPRING_DATASOURCE_USERNAME
31+
valueFrom:
32+
secretKeyRef:
33+
name: mysql-user
34+
key: username
35+
- name: SPRING_DATASOURCE_PASSWORD
36+
valueFrom:
37+
secretKeyRef:
38+
name: mysql-pass
39+
key: password
40+
- name: SPRING_DATASOURCE_URL
41+
valueFrom:
42+
secretKeyRef:
43+
name: mysql-url
44+
key: url
45+
---
46+
apiVersion: v1
47+
kind: Service
48+
metadata:
49+
name: polling-app-server
50+
labels:
51+
app: polling-app-server
52+
spec:
53+
type: NodePort
54+
selector:
55+
app: polling-app-server
56+
ports:
57+
- name: http
58+
port: 8080
59+
targetPort: 8080

0 commit comments

Comments
 (0)