Solution TP 5

/images/k8s.jpeg

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

Latest Posts