01. October 2023
Solution TP 5
TP5 : Secret et ConfigMap
🇫🇷 Version Française
Backend Configmap
Manifest de la configMap backend :
1apiVersion: v1
2kind: ConfigMap
3metadata:
4 name: back-configmap
5data:
6 MONGO_HOSTNAME: mongo.form-k8s.svc.cluster.local
7 MONGO_PORT: '27017'
8 MONGO_DB: training
Backend Secret
Manifest du secret backend :
1apiVersion: v1
2kind: Secret
3metadata:
4 name: back-secret
5type: Opaque
6data:
7 MONGO_USERNAME: QWRtaW4=
8 MONGO_PASSWORD: UGFzc3dvcmQ=
Manifest du deployment avec les references vers les configmap et secret créé juste avant :
1kind: Deployment
2apiVersion: apps/v1
3metadata:
4 name: back-training-app
5spec:
6 replicas: 2
7 selector:
8 matchLabels:
9 app: back-training-app
10 template:
11 metadata:
12 labels:
13 app: back-training-app
14 spec:
15 containers:
16 - name: back-training-app
17 image: axelpereira/k8s-training-test-app-back:1.1
18 imagePullPolicy: IfNotPresent
19 env:
20 - name: MONGO_USERNAME
21 valueFrom:
22 secretKeyRef:
23 name: back-secret
24 key: MONGO_USERNAME
25 - name: MONGO_PASSWORD
26 valueFrom:
27 secretKeyRef:
28 name: back-secret
29 key: MONGO_PASSWORD
30 - name: MONGO_HOSTNAME
31 valueFrom:
32 configMapKeyRef:
33 name: back-configmap
34 key: MONGO_HOSTNAME
35 - name: MONGO_PORT
36 valueFrom:
37 configMapKeyRef:
38 name: back-configmap
39 key: MONGO_PORT
40 - name: MONGO_DB
41 valueFrom:
42 configMapKeyRef:
43 name: back-configmap
44 key: MONGO_DB
MongoDb Secret
Manifest du secret mongo :
1apiVersion: v1
2kind: Secret
3metadata:
4 name: mongo-secret
5type: Opaque
6data:
7 MONGO_ROOT_USERNAME: QWRtaW4=
8 MONGO_ROOT_PASSWORD: UGFzc3dvcmQ=
Manifest du StatefulSet mongo avec les références vers le secret :
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4 name: mongodb-statefulset
5spec:
6 serviceName: mongo
7 replicas: 1
8 selector:
9 matchLabels:
10 role: mongo
11 template:
12 metadata:
13 labels:
14 role: mongo
15 spec:
16 containers:
17 - name: mongodb-standalone
18 image: mongo:4.0.8
19 env:
20 - name: MONGO_INITDB_ROOT_USERNAME
21 valueFrom:
22 secretKeyRef:
23 name: mongo-secret
24 key: MONGO_ROOT_USERNAME
25 - name: MONGO_INITDB_ROOT_PASSWORD
26 valueFrom:
27 secretKeyRef:
28 name: mongo-secret
29 key: MONGO_ROOT_PASSWORD
30 volumeMounts:
31 - name: mongo-volume
32 mountPath: /data/db
33 volumeClaimTemplates:
34 - metadata:
35 name: mongo-volume
36 spec:
37 accessModes:
38 - ReadWriteOnce
39 resources:
40 requests:
41 storage: 1Gi
🇬🇧 English version
Backend Configmap
Backend configMap manifest :
1apiVersion: v1
2kind: ConfigMap
3metadata:
4 name: back-configmap
5data:
6 MONGO_HOSTNAME: mongo.form-k8s.svc.cluster.local
7 MONGO_PORT: '27017'
8 MONGO_DB: training
Backend Secret
Backend secret manifest :
1apiVersion: v1
2kind: Secret
3metadata:
4 name: back-secret
5type: Opaque
6data:
7 MONGO_USERNAME: QWRtaW4=
8 MONGO_PASSWORD: UGFzc3dvcmQ=
Backend deployment manifest with reference to the configMap and secret.
1kind: Deployment
2apiVersion: apps/v1
3metadata:
4 name: back-training-app
5spec:
6 replicas: 2
7 selector:
8 matchLabels:
9 app: back-training-app
10 template:
11 metadata:
12 labels:
13 app: back-training-app
14 spec:
15 containers:
16 - name: back-training-app
17 image: axelpereira/k8s-training-test-app-back:1.1
18 imagePullPolicy: IfNotPresent
19 env:
20 - name: MONGO_USERNAME
21 valueFrom:
22 secretKeyRef:
23 name: back-secret
24 key: MONGO_USERNAME
25 - name: MONGO_PASSWORD
26 valueFrom:
27 secretKeyRef:
28 name: back-secret
29 key: MONGO_PASSWORD
30 - name: MONGO_HOSTNAME
31 valueFrom:
32 configMapKeyRef:
33 name: back-configmap
34 key: MONGO_HOSTNAME
35 - name: MONGO_PORT
36 valueFrom:
37 configMapKeyRef:
38 name: back-configmap
39 key: MONGO_PORT
40 - name: MONGO_DB
41 valueFrom:
42 configMapKeyRef:
43 name: back-configmap
44 key: MONGO_DB
MongoDb Secret
Mongo secret manifest:
1apiVersion: v1
2kind: Secret
3metadata:
4 name: mongo-secret
5type: Opaque
6data:
7 MONGO_ROOT_USERNAME: QWRtaW4=
8 MONGO_ROOT_PASSWORD: UGFzc3dvcmQ=
Mongo statefulset manifest with reference to the secret :
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4 name: mongodb-statefulset
5spec:
6 serviceName: mongo
7 replicas: 1
8 selector:
9 matchLabels:
10 role: mongo
11 template:
12 metadata:
13 labels:
14 role: mongo
15 spec:
16 containers:
17 - name: mongodb-standalone
18 image: mongo:4.0.8
19 env:
20 - name: MONGO_INITDB_ROOT_USERNAME
21 valueFrom:
22 secretKeyRef:
23 name: mongo-secret
24 key: MONGO_ROOT_USERNAME
25 - name: MONGO_INITDB_ROOT_PASSWORD
26 valueFrom:
27 secretKeyRef:
28 name: mongo-secret
29 key: MONGO_ROOT_PASSWORD
30 volumeMounts:
31 - name: mongo-volume
32 mountPath: /data/db
33 volumeClaimTemplates:
34 - metadata:
35 name: mongo-volume
36 spec:
37 accessModes:
38 - ReadWriteOnce
39 resources:
40 requests:
41 storage: 1Gi