Skip to content

Commit 489954d

Browse files
gkechhors
andauthored
K8SPSMDB-1610 cluster sync integration (#2392)
* K8SPSMDB-1610 cluster sync integration * cr: check after finalize + use equals for counting the docs * cr: address various comments * cr: address more code review comments * fix cr * fixes * leases * backups/restores leases * fix on error * handle leases held by another cr --------- Co-authored-by: Viacheslav Sarzhan <slava.sarzhan@percona.com>
1 parent bfded4c commit 489954d

43 files changed

Lines changed: 9231 additions & 5 deletions

Some content is hidden

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

cmd/manager/main.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,16 +115,18 @@ func main() {
115115
}
116116

117117
options.Controller.GroupKindConcurrency = map[string]int{
118-
"PerconaServerMongoDB." + psmdbv1.SchemeGroupVersion.Group: 1,
119-
"PerconaServerMongoDBBackup." + psmdbv1.SchemeGroupVersion.Group: 1,
120-
"PerconaServerMongoDBRestore." + psmdbv1.SchemeGroupVersion.Group: 1,
118+
"PerconaServerMongoDB." + psmdbv1.SchemeGroupVersion.Group: 1,
119+
"PerconaServerMongoDBBackup." + psmdbv1.SchemeGroupVersion.Group: 1,
120+
"PerconaServerMongoDBRestore." + psmdbv1.SchemeGroupVersion.Group: 1,
121+
"PerconaServerMongoDBClusterSync." + psmdbv1.SchemeGroupVersion.Group: 1,
121122
}
122123

123124
if s := os.Getenv("MAX_CONCURRENT_RECONCILES"); s != "" {
124125
if i, err := strconv.Atoi(s); err == nil && i > 0 {
125126
options.Controller.GroupKindConcurrency["PerconaServerMongoDB."+psmdbv1.SchemeGroupVersion.Group] = i
126127
options.Controller.GroupKindConcurrency["PerconaServerMongoDBBackup."+psmdbv1.SchemeGroupVersion.Group] = i
127128
options.Controller.GroupKindConcurrency["PerconaServerMongoDBRestore."+psmdbv1.SchemeGroupVersion.Group] = i
129+
options.Controller.GroupKindConcurrency["PerconaServerMongoDBClusterSync."+psmdbv1.SchemeGroupVersion.Group] = i
128130
} else {
129131
setupLog.Error(err, "MAX_CONCURRENT_RECONCILES must be a positive number")
130132
os.Exit(1)

config/crd/bases/psmdb.percona.com_perconaservermongodbclustersyncs.yaml

Lines changed: 1067 additions & 0 deletions
Large diffs are not rendered by default.

config/crd/kustomization.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
# It should be run by config/default
44
resources:
55
- bases/psmdb.percona.com_perconaservermongodbbackups.yaml
6+
- bases/psmdb.percona.com_perconaservermongodbclustersyncs.yaml
67
- bases/psmdb.percona.com_perconaservermongodbrestores.yaml
78
- bases/psmdb.percona.com_perconaservermongodbs.yaml
89
#+kubebuilder:scaffold:crdkustomizeresource
910

1011
patchesStrategicMerge:
1112
- patches/versionlabel_in_psmdb.yaml
1213
- patches/versionlabel_in_psmdbbackup.yaml
14+
- patches/versionlabel_in_psmdbclustersync.yaml
1315
- patches/versionlabel_in_psmdbrestore.yaml
1416

1517
patches:
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: apiextensions.k8s.io/v1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
name: perconaservermongodbclustersyncs.psmdb.percona.com
5+
labels:
6+
app.kubernetes.io/name: percona-server-mongodb
7+
app.kubernetes.io/version: v1.23.0
8+
app.kubernetes.io/component: crd
9+
app.kubernetes.io/part-of: percona-server-mongodb-operator

deploy/bundle.yaml

Lines changed: 1075 additions & 0 deletions
Large diffs are not rendered by default.

deploy/clustersync.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
apiVersion: psmdb.percona.com/v1
2+
kind: PerconaServerMongoDBClusterSync
3+
metadata:
4+
name: my-cluster-sync
5+
spec:
6+
clusterName: my-target-cluster-name
7+
image: percona/percona-clustersync-mongodb:0.9.0
8+
# mode controls the PCSM lifecycle intent. Allowed values:
9+
# running - start/resume replication (default)
10+
# paused - pause an active replication
11+
# finalized - stop replication and tear down owned resources
12+
mode: running
13+
source:
14+
uri: mongodb://source-cluster-mongos.source-namespace.svc.cluster.local:27017
15+
credentialsSecret: my-cluster-sync-source
16+
# excludeNamespaces lists MongoDB namespaces (db or db.collection) to skip.
17+
# excludeNamespaces:
18+
# - admin
19+
# - local
20+
# resources:
21+
# requests:
22+
# cpu: 500m
23+
# memory: 512Mi
24+
# limits:
25+
# cpu: "2"
26+
# memory: 2Gi
27+
---
28+
apiVersion: v1
29+
kind: Secret
30+
metadata:
31+
name: my-cluster-sync-source
32+
type: Opaque
33+
stringData:
34+
username: source
35+
password: mys3cretpAss

0 commit comments

Comments
 (0)