apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-deployment
spec:
  selector:
    matchLabels:
      app: mongodb
  replicas: 1
  template:
    metadata:
      labels:
        app: mongodb
    spec:
      hostname: mongodb-service
      containers:
        - name: mongodb
          image: mongo:4.4
          command: ['mongod', '--replSet', 'rs0', '--bind_ip_all']
          # -- bash
          # mongo
          # use admin
          # rs.initiate()
          ports:
            - containerPort: 27017

          volumeMounts:
            - name: mongo-persistent-storage
              mountPath: /data/db

      # resources:
      #   requests:
      #     memory: '500Mi'
      #     cpu: '500m'
      volumes:
        - name: mongo-persistent-storage
          persistentVolumeClaim:
            claimName: mongodb-pvc

---
apiVersion: v1
kind: Service
metadata:
  name: mongodb-service
spec:
  clusterIP: None
  selector:
    app: mongodb
  ports:
    - protocol: TCP
      port: 27017
#     targetPort: 27017
# type: ClusterIP

# rs.initiate();
# use admin;
# rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "127.0.0.1:27017" } ] })
# db.createUser({user: "your_user",pwd: "your_password", roles: [{role: "userAdminAnyDatabase", db: "admin" },{ role: "readWriteAnyDatabase", db: "admin" }]});
# cfg = rs.conf();
# cfg.members[0].host = "127.0.0.1:27027";
# rs.reconfig(cfg);
