Skip to content

Commit 229798f

Browse files
committed
Add MongoDB external connections(horizons) Docs
Signed-off-by: obaydullahmhs <obaydullah@appscode.com>
1 parent 97629dd commit 229798f

File tree

9 files changed

+672
-1
lines changed

9 files changed

+672
-1
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: catalog.appscode.com/v1alpha1
2+
kind: MongoDBBinding
3+
metadata:
4+
name: mongodb-bind
5+
namespace: demo
6+
spec:
7+
sourceRef:
8+
name: mongodb-horizons
9+
namespace: demo
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
apiVersion: gateway.envoyproxy.io/v1alpha1
2+
kind: EnvoyProxy
3+
metadata:
4+
name: ace
5+
namespace: ace-gw
6+
spec:
7+
logging:
8+
level:
9+
default: warn
10+
mergeGateways: true
11+
provider:
12+
kubernetes:
13+
envoyDeployment:
14+
container:
15+
image: ghcr.io/voyagermesh/envoy:v1.33.1-ac
16+
securityContext:
17+
allowPrivilegeEscalation: false
18+
capabilities:
19+
drop:
20+
- ALL
21+
privileged: false
22+
runAsNonRoot: true
23+
runAsUser: 65534
24+
seccompProfile:
25+
type: RuntimeDefault
26+
patch:
27+
value:
28+
spec:
29+
template:
30+
spec:
31+
containers:
32+
- name: shutdown-manager
33+
securityContext:
34+
allowPrivilegeEscalation: false
35+
capabilities:
36+
drop:
37+
- ALL
38+
privileged: false
39+
runAsNonRoot: true
40+
runAsUser: 65534
41+
seccompProfile:
42+
type: RuntimeDefault
43+
envoyService:
44+
externalTrafficPolicy: Cluster
45+
type: NodePort
46+
type: Kubernetes
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apiVersion: gateway.networking.k8s.io/v1
2+
kind: GatewayClass
3+
metadata:
4+
annotations:
5+
catalog.appscode.com/gateway-config: |-
6+
frontendTLSSecretRef:
7+
name: ace-gw-cert
8+
namespace: ace
9+
service:
10+
externalTrafficPolicy: Cluster
11+
nodeportRange: 30000-32767
12+
portRange: 10000-12767
13+
seedBackendPort: 8080
14+
type: LoadBalancer
15+
vaultServer:
16+
name: vault
17+
namespace: ace
18+
catalog.appscode.com/is-default-gatewayclass: "true"
19+
name: ace
20+
spec:
21+
controllerName: gateway.envoyproxy.io/gatewayclass-controller
22+
description: Default Service GatewayClass
23+
parametersRef:
24+
group: gateway.envoyproxy.io
25+
kind: EnvoyProxy
26+
name: ace
27+
namespace: ace-gw
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: source.toolkit.fluxcd.io/v1
2+
kind: HelmRepository
3+
metadata:
4+
name: appscode-charts-oci
5+
namespace: kubeops
6+
spec:
7+
interval: 30m
8+
provider: generic
9+
timeout: 1m
10+
type: oci
11+
url: oci://ghcr.io/appscode-charts
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
apiVersion: helm.toolkit.fluxcd.io/v2
2+
kind: HelmRelease
3+
metadata:
4+
name: keda
5+
namespace: kubeops
6+
spec:
7+
chart:
8+
spec:
9+
chart: keda
10+
reconcileStrategy: ChartVersion
11+
sourceRef:
12+
kind: HelmRepository
13+
name: appscode-charts-oci
14+
namespace: kubeops
15+
version: 2.16.1
16+
install:
17+
crds: CreateReplace
18+
createNamespace: true
19+
remediation:
20+
retries: -1
21+
interval: 5m
22+
releaseName: keda
23+
storageNamespace: keda
24+
targetNamespace: keda
25+
timeout: 30m
26+
upgrade:
27+
crds: CreateReplace
28+
remediation:
29+
retries: -1
30+
values:
31+
image:
32+
keda:
33+
registry: ghcr.io
34+
metricsApiServer:
35+
registry: ghcr.io
36+
webhooks:
37+
registry: ghcr.io
38+
---
39+
apiVersion: helm.toolkit.fluxcd.io/v2
40+
kind: HelmRelease
41+
metadata:
42+
name: keda-add-ons-http
43+
namespace: kubeops
44+
spec:
45+
chart:
46+
spec:
47+
chart: keda-add-ons-http
48+
reconcileStrategy: ChartVersion
49+
sourceRef:
50+
kind: HelmRepository
51+
name: appscode-charts-oci
52+
namespace: kubeops
53+
version: 0.10.0
54+
dependsOn:
55+
- name: keda
56+
install:
57+
crds: CreateReplace
58+
createNamespace: true
59+
remediation:
60+
retries: -1
61+
interval: 5m
62+
releaseName: keda-add-ons-http
63+
storageNamespace: keda
64+
targetNamespace: keda
65+
timeout: 30m
66+
upgrade:
67+
crds: CreateReplace
68+
remediation:
69+
retries: -1
70+
values:
71+
images:
72+
interceptor: ghcr.io/kedacore/http-add-on-interceptor
73+
kubeRbacProxy:
74+
name: ghcr.io/appscode/kube-rbac-proxy
75+
operator: ghcr.io/kedacore/http-add-on-operator
76+
scaler: ghcr.io/kedacore/http-add-on-scaler
77+
interceptor:
78+
responseHeaderTimeout: 1s
79+
securityContext:
80+
allowPrivilegeEscalation: false
81+
capabilities:
82+
drop:
83+
- ALL
84+
privileged: false
85+
readOnlyRootFilesystem: true
86+
runAsGroup: 1000
87+
runAsNonRoot: true
88+
runAsUser: 1000
89+
seccompProfile:
90+
type: RuntimeDefault
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: kubedb.com/v1
2+
kind: MongoDB
3+
metadata:
4+
name: mongodb-horizons
5+
namespace: demo
6+
spec:
7+
clusterAuthMode: x509
8+
deletionPolicy: WipeOut
9+
replicaSet:
10+
horizons:
11+
dns: kubedb.cloud
12+
pods:
13+
- mongo-0.kubedb.cloud
14+
- mongo-1.kubedb.cloud
15+
- mongo-2.kubedb.cloud
16+
name: rs0
17+
replicas: 3
18+
sslMode: requireSSL
19+
storage:
20+
accessModes:
21+
- ReadWriteOnce
22+
resources:
23+
requests:
24+
storage: 2Gi
25+
storageEngine: wiredTiger
26+
storageType: Durable
27+
tls:
28+
certificates:
29+
- alias: server
30+
dnsNames:
31+
- kubedb.cloud
32+
- mongo-0.kubedb.cloud
33+
- mongo-1.kubedb.cloud
34+
- mongo-2.kubedb.cloud
35+
issuerRef:
36+
apiGroup: cert-manager.io
37+
kind: Issuer
38+
name: mongo-ca-issuer
39+
version: 7.0.16

docs/guides/mongodb/concepts/mongodb.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ spec:
3838
externallyManaged: false
3939
replicaSet:
4040
name: rs0
41+
horizons:
42+
dns: kubedb.cloud
43+
pods:
44+
- mongo-0.kubedb.cloud
45+
- mongo-1.kubedb.cloud
46+
- mongo-2.kubedb.cloud
4147
shardTopology:
4248
configServer:
4349
podTemplate: {}
@@ -251,7 +257,11 @@ Secrets provided by users are not managed by KubeDB, and therefore, won't be mod
251257

252258
### spec.replicaSet
253259

254-
`spec.replicaSet` represents the configuration for replicaset. When `spec.replicaSet` is set, KubeDB will deploy a mongodb replicaset where number of replicaset member is spec.replicas.
260+
`spec.replicaSet` represents the configuration for replicaset. When `spec.replicaSet` is set, KubeDB will deploy a mongodb replicaset where number of replicaset member is `spec.replicas`.
261+
262+
`.spec.replicaset.horizons` represents the configuration for mongodb replicaset to connect with external mongodb cluster. It has the following fields:
263+
- `dns` denotes the dns name for `srv` of the external mongodb cluster.
264+
- `pods` denotes the list of pods of external mongodb cluster.
255265

256266
- `name` denotes the name of mongodb replicaset.
257267
NB. If `spec.shardTopology` is set, then `spec.replicaset` needs to be empty.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: External MongoDB Connections Outside Kubernetes using MongoDB HorizonsRun
3+
menu:
4+
docs_{{ .version }}:
5+
identifier: mg-horizons
6+
name: External Connections(Horizons)
7+
parent: mg-mongodb-guides
8+
weight: 31
9+
menu_name: docs_{{ .version }}
10+
---

0 commit comments

Comments
 (0)