-
Notifications
You must be signed in to change notification settings - Fork 132
/
springBootMongo.yml
141 lines (138 loc) · 2.62 KB
/
springBootMongo.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
kind: ConfigMap
apiVersion: v1
metadata:
name: springappconfigmap
data:
username: springapp
password: mongodb@123
---
apiVersion: v1
kind: Secret
metadata:
name: springappsecrets
type: Opaque
stringData: # We can define multiple key value pairs.
password: devdb@123
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-hostpath
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/tmp/mongodata"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-hostpath
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
---
## Spring Boot App
apiVersion: apps/v1
kind: Deployment
metadata:
name: springappdeployment
spec:
replicas: 2
selector:
matchLabels:
app: springapp
template:
metadata:
name: springapppod
labels:
app: springapp
spec:
containers:
- name: springappcontainer
image: dockerhandson/spring-boot-mongo
ports:
- containerPort: 8080
env:
- name: MONGO_DB_USERNAME
valueFrom:
configMapKeyRef:
name: springappconfigmap
key: username
- name: MONGO_DB_PASSWORD
valueFrom:
secretKeyRef:
name: springappsecrets
key: password
- name: MONGO_DB_HOSTNAME
value: mongo
---
apiVersion: v1
kind: Service
metadata:
name: springapp
spec:
selector:
app: springapp
ports:
- port: 80
targetPort: 8080
type: NodePort
---
# Mongo db pod with volumes(HostPath)
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: mongodbrs
spec:
selector:
matchLabels:
app: mongodb
template:
metadata:
name: mongodbpod
labels:
app: mongodb
spec:
volumes:
- name: mongodb-pvc
persistentVolumeClaim:
claimName: pvc-hostpath
containers:
- name: mongodbcontainer
image: mongo
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
configMapKeyRef:
name: springappconfigmap
key: username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: springappsecrets
key: password
volumeMounts:
- name: mongodb-pvc
mountPath: /data/db
---
apiVersion: v1
kind: Service
metadata:
name: mongo
spec:
type: ClusterIP
selector:
app: mongodb
ports:
- port: 27017
targetPort: 27017