82 lines
2.0 KiB
YAML
82 lines
2.0 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: mongodb-account
|
|
namespace: 'default'
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: mongodb-role
|
|
rules:
|
|
- apiGroups: ["*"]
|
|
resources: ["services"]
|
|
verbs: ["*"]
|
|
- apiGroups: ["*"]
|
|
resources: ["pods"]
|
|
verbs: ["get","list", "watch"]
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: mongodb-role-binding
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: mongodb-account
|
|
namespace: 'default'
|
|
roleRef:
|
|
kind: ClusterRole
|
|
name: mongodb-role
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: mongo-configure-job
|
|
spec:
|
|
template:
|
|
metadata:
|
|
name: mongo-configure-job
|
|
spec:
|
|
serviceAccountName: mongodb-account
|
|
initContainers:
|
|
- name: mongo-configure-dependency
|
|
image: ylonkar/pod-dependency-init-container:1.0.2
|
|
env:
|
|
- name: POD_LABELS
|
|
value: "app=mongo,statefulset.kubernetes.io/pod-name=mongo-2"
|
|
- name: MAX_RETRY
|
|
value: "10"
|
|
- name: RETRY_TIME_OUT
|
|
value: "30000"
|
|
containers:
|
|
- name: mongo
|
|
image: mongo:latest
|
|
command:
|
|
- mongosh
|
|
- mongo-0.mongo
|
|
- "--eval"
|
|
- |
|
|
rs.initiate({
|
|
_id : "rs0",
|
|
members: [
|
|
{
|
|
"_id": 0,
|
|
"host": "mongo-0.mongo",
|
|
"priority": 4
|
|
},
|
|
{
|
|
"_id": 1,
|
|
"host": "mongo-1.mongo",
|
|
"priority": 2
|
|
},
|
|
{
|
|
"_id": 2,
|
|
"host": "mongo-2.mongo",
|
|
"priority": 1
|
|
}
|
|
]
|
|
})
|
|
restartPolicy: Never
|
|
backoffLimit: 4 |