Skip to content

Commit 9f5bc04

Browse files
authored
Update sample files from MEKO (#2094)
* Update sample files from MEKO * Update sample files from MEKO
1 parent b8ec7fa commit 9f5bc04

File tree

88 files changed

+1083
-138
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+1083
-138
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
kubectl apply --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" -f - <<EOF
2+
apiVersion: cert-manager.io/v1
3+
kind: Certificate
4+
metadata:
5+
name: mdb-cert
6+
spec:
7+
dnsNames:
8+
- "*.${MDB_CLUSTER_0_EXTERNAL_DOMAIN}"
9+
- "*.${MDB_CLUSTER_1_EXTERNAL_DOMAIN}"
10+
- "*.${MDB_CLUSTER_2_EXTERNAL_DOMAIN}"
11+
duration: 240h0m0s
12+
issuerRef:
13+
name: my-ca-issuer
14+
kind: ClusterIssuer
15+
renewBefore: 120h0m0s
16+
secretName: cert-prefix-mdb-cert
17+
usages:
18+
- server auth
19+
- client auth
20+
EOF
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
kubectl apply --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" -f - <<EOF
2+
apiVersion: mongodb.com/v1
3+
kind: MongoDBMultiCluster
4+
metadata:
5+
name: ${RS_RESOURCE_NAME}
6+
spec:
7+
type: ReplicaSet
8+
version: ${MONGODB_VERSION}
9+
opsManager:
10+
configMapRef:
11+
name: mdb-org-project-config
12+
credentials: mdb-org-owner-credentials
13+
duplicateServiceObjects: false
14+
persistent: true
15+
backup:
16+
mode: enabled
17+
security:
18+
certsSecretPrefix: cert-prefix
19+
tls:
20+
ca: ca-issuer
21+
authentication:
22+
enabled: true
23+
modes: ["SCRAM"]
24+
clusterSpecList:
25+
- clusterName: ${K8S_CLUSTER_0_CONTEXT_NAME}
26+
members: 2
27+
externalAccess:
28+
externalDomain: "${MDB_CLUSTER_0_EXTERNAL_DOMAIN}"
29+
externalService:
30+
annotations:
31+
external-dns.alpha.kubernetes.io/hostname: "{podName}.${MDB_CLUSTER_0_EXTERNAL_DOMAIN}"
32+
- clusterName: ${K8S_CLUSTER_1_CONTEXT_NAME}
33+
members: 1
34+
externalAccess:
35+
externalDomain: "${MDB_CLUSTER_1_EXTERNAL_DOMAIN}"
36+
externalService:
37+
annotations:
38+
external-dns.alpha.kubernetes.io/hostname: "{podName}.${MDB_CLUSTER_1_EXTERNAL_DOMAIN}"
39+
- clusterName: ${K8S_CLUSTER_2_CONTEXT_NAME}
40+
members: 2
41+
externalAccess:
42+
externalDomain: "${MDB_CLUSTER_2_EXTERNAL_DOMAIN}"
43+
externalService:
44+
annotations:
45+
external-dns.alpha.kubernetes.io/hostname: "{podName}.${MDB_CLUSTER_2_EXTERNAL_DOMAIN}"
46+
EOF
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
echo; echo "Waiting for MongoDB to reach Running phase..."
2+
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" wait --for=jsonpath='{.status.phase}'=Running "mdbmc/${RS_RESOURCE_NAME}" --timeout=900s
3+
echo; echo "Pods running in cluster ${K8S_CLUSTER_0_CONTEXT_NAME}"
4+
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" get pods
5+
echo; echo "Pods running in cluster ${K8S_CLUSTER_1_CONTEXT_NAME}"
6+
kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" get pods
7+
echo; echo "Pods running in cluster ${K8S_CLUSTER_2_CONTEXT_NAME}"
8+
kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" get pods
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
kubectl apply --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" -f - <<EOF
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: rs-user-password
6+
type: Opaque
7+
stringData:
8+
password: password
9+
---
10+
apiVersion: mongodb.com/v1
11+
kind: MongoDBUser
12+
metadata:
13+
name: rs-user
14+
spec:
15+
passwordSecretKeyRef:
16+
name: rs-user-password
17+
key: password
18+
username: "rs-user"
19+
db: "admin"
20+
mongodbResourceRef:
21+
name: ${RS_RESOURCE_NAME}
22+
roles:
23+
- db: "admin"
24+
name: "root"
25+
EOF
26+
27+
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" wait --for=jsonpath='{.status.phase}'=Updated -n "${MDB_NAMESPACE}" mdbu/rs-user --timeout=300s
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
external_ip="$(kubectl get --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" svc "${RS_RESOURCE_NAME}-0-0-svc-external" -o=jsonpath="{.status.loadBalancer.ingress[0].ip}")"
2+
3+
mkdir -p certs
4+
kubectl get --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" cm/ca-issuer -o=jsonpath='{.data.ca-pem}' > certs/ca.crt
5+
6+
mongosh --host "${external_ip}" --username rs-user --password password --tls --tlsCAFile certs/ca.crt --tlsAllowInvalidHostnames --eval "db.runCommand({connectionStatus : 1})"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" delete mdbu/rs-user
2+
3+
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" delete "mdbmc/${RS_RESOURCE_NAME}"
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# This script builds on top of the environment configured in the setup guides.
2+
# It depends (uses) the following env variables defined there to work correctly.
3+
# If you don't use the setup guide to bootstrap the environment, then define them here.
4+
# ${K8S_CLUSTER_0_CONTEXT_NAME}
5+
# ${K8S_CLUSTER_1_CONTEXT_NAME}
6+
# ${K8S_CLUSTER_2_CONTEXT_NAME}
7+
# ${MDB_NAMESPACE}
8+
# ${CUSTOM_DOMAIN}
9+
10+
export RS_RESOURCE_NAME=mdb
11+
export MONGODB_VERSION="8.0.5-ent"
12+
13+
export MDB_CLUSTER_0_EXTERNAL_DOMAIN="${K8S_CLUSTER_0}.${CUSTOM_DOMAIN}"
14+
export MDB_CLUSTER_1_EXTERNAL_DOMAIN="${K8S_CLUSTER_1}.${CUSTOM_DOMAIN}"
15+
export MDB_CLUSTER_2_EXTERNAL_DOMAIN="${K8S_CLUSTER_2}.${CUSTOM_DOMAIN}"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
authInfo: {
3+
authenticatedUsers: [ { user: 'rs-user', db: 'admin' } ],
4+
authenticatedUserRoles: [ { role: 'root', db: 'admin' } ]
5+
},
6+
ok: 1,
7+
'$clusterTime': {
8+
clusterTime: Timestamp({ t: 1743589744, i: 1 }),
9+
signature: {
10+
hash: Binary.createFromBase64('fiBrPX9aaxTmMmLb1K2q6d4/XfQ=', 0),
11+
keyId: Long('7488660369775263749')
12+
}
13+
},
14+
operationTime: Timestamp({ t: 1743589744, i: 1 })
15+
}

source/includes/code-examples/reference-architectures/mongodb-replicaset-multi-cluster/code_snippets/1100_mongodb_replicaset_multi_cluster.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ kubectl apply --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" -f
22
apiVersion: mongodb.com/v1
33
kind: MongoDBMultiCluster
44
metadata:
5-
name: ${RESOURCE_NAME}
5+
name: ${RS_RESOURCE_NAME}
66
spec:
77
type: ReplicaSet
88
version: ${MONGODB_VERSION}
@@ -12,6 +12,8 @@ spec:
1212
credentials: mdb-org-owner-credentials
1313
duplicateServiceObjects: false
1414
persistent: true
15+
backup:
16+
mode: enabled
1517
externalAccess: {}
1618
security:
1719
certsSecretPrefix: cert-prefix

source/includes/code-examples/reference-architectures/mongodb-replicaset-multi-cluster/code_snippets/1110_mongodb_replicaset_multi_cluster_wait_for_running_state.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
echo; echo "Waiting for MongoDB to reach Running phase..."
2-
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" wait --for=jsonpath='{.status.phase}'=Running "mdbmc/${RESOURCE_NAME}" --timeout=900s
2+
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" wait --for=jsonpath='{.status.phase}'=Running "mdbmc/${RS_RESOURCE_NAME}" --timeout=900s
33
echo; echo "Pods running in cluster ${K8S_CLUSTER_0_CONTEXT_NAME}"
44
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" get pods
55
echo; echo "Pods running in cluster ${K8S_CLUSTER_1_CONTEXT_NAME}"

0 commit comments

Comments
 (0)