Я пытаюсь развернуть mongodb в Kubernetes, но получаю сообщение об ошибке:
ошибка синтаксического анализа stateful.yaml: ошибка преобразования YAML в JSON: yaml: строка
35: значения сопоставления не разрешены в этом контексте
строка 35 - это имя контейнера: - имя: uat-mongo-primary
Я получаю эту ошибку, когда пытаюсь создать модули, но если я комментирую строки:
mongo --eval rs.initiate ({_ id: "rs0", версия: 1, члены: [{_id: 0,
host: "uat-mongo-primary-rc-0: 27017"}]}); 53 монго
--eval "db.getSiblingDB ('admin'). createUser ({пользователь: \" $ MONGO_USER \ ", pwd: \" $ MONGO_PASSWORD \ ", роли: [{role: 'root', db: 'admin'} ]
}) ";
блоки создаются нормально, но мне нужно запустить кластер, а также создать пользователя и пароль.
это полный файл yaml, который я использую, я буду признателен за любую помощь:
apiVersion: v1
kind: Service
metadata:
name: uat-mongo-primary
labels:
name: uat-mongo-primary
spec:
type: NodePort
ports:
- port: 27017
targetPort: 27017
protocol: TCP
name: uat-mongo-primary
selector:
name: uat-mongo-primary
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: uat-mongo-primary-rc
labels:
name: uat-mongo-primary-rc
spec:
serviceName: uat-mongo-primary
replicas: 1
template:
metadata:
labels:
role: mongo
environment: test
spec:
containers:
- name: uat-mongo-primary
image: mongo
env:
- name: "MONGO_DATA_DIR"
value: "/data/db"
- name: "MONGO_LOG_DIR"
value: "/data/logs"
- name: MONGO_USER
value: "admin"
- name: MONGO_PASSWORD
value: "password"
command: ["/bin/sh", "-c"]
args:
- echo starting;
ulimit -a;
mongod --replSet rs0 --bind_ip_all;
mongo --eval rs.initiate({_id: "rs0", version: 1, members: [{ _id: 0, host : "uat-mongo-primary-rc-0:27017" }]});
mongo --eval "db.getSiblingDB('admin').createUser({user : \"$MONGO_USER\", pwd : \"$MONGO_PASSWORD\", roles: [ { role: 'root', db: 'admin' } ] })";
ports:
- containerPort: 27017
volumes:
- name: uat-mongo-primary-db
persistentVolumeClaim:
claimName: uat-mongo-primary-pvc