Skip to content

Commit ca4e0d2

Browse files
authored
Merge pull request #142 from arangodb/documentation/deployment-replication-spec
Adding deployment replication spec
2 parents 2c9e42f + 6722882 commit ca4e0d2

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# ArangoDeploymentReplication Custom Resource
2+
3+
The ArangoDB Replication Operator creates and maintains ArangoDB
4+
`arangosync` configurations in a Kubernetes cluster, given a replication specification.
5+
This replication specification is a `CustomResource` following
6+
a `CustomResourceDefinition` created by the operator.
7+
8+
Example minimal replication definition:
9+
10+
```yaml
11+
apiVersion: "replication.database.arangodb.com/v1alpha"
12+
kind: "ArangoDeploymentReplication"
13+
metadata:
14+
name: "replication-from-a-to-b"
15+
spec:
16+
source:
17+
deploymentName: cluster-a
18+
destination:
19+
deploymentName: cluster-b
20+
auth:
21+
clientAuthSecretName: client-auth-cert
22+
```
23+
24+
This definition results in:
25+
26+
- the arangosync `SyncMaster` in deployment `cluster-b` is called to configure a synchronization
27+
from `cluster-a` to `cluster-b`, using the client authentication certificate stored in
28+
`Secret` `client-auth-cert`.
29+
30+
## Specification reference
31+
32+
Below you'll find all settings of the `ArangoDeploymentReplication` custom resource.
33+
34+
### `spec.source.deploymentName: string`
35+
36+
This setting specifies the name of an `ArangoDeployment` resource that runs a cluster
37+
with sync enabled.
38+
39+
This cluster configured as the replication source.
40+
41+
### `spec.source.deploymentNamespace: string`
42+
43+
This setting specifies the Kubernetes namespace of an `ArangoDeployment` resource specified in `spec.source.deploymentName`.
44+
45+
If this setting is empty, the namespace of the `ArangoDeploymentReplication` is used.
46+
47+
### `spec.source.masterEndpoints: []string`
48+
49+
This setting specifies zero or more master endpoint URL's of the source cluster.
50+
51+
Use this setting if the source cluster is not running inside a Kubernetes cluster
52+
that is reachable from the Kubernetes cluster the `ArangoDeploymentReplication` resource is deployed in.
53+
54+
Specifying this setting and `spec.source.deploymentName` at the same time is not allowed.
55+
56+
### `spec.source.auth.jwtSecretName: string`
57+
58+
This setting specifies the name of a `Secret` containing a JWT `token` used to authenticate
59+
with the SyncMaster at the specified source.
60+
61+
This setting is required, unless `spec.source.deploymentName` has been set.
62+
63+
### `spec.source.tls.caSecretName: string`
64+
65+
This setting specifies the name of a `Secret` containing a TLS CA certificate `ca.crt` used to verify
66+
the TLS connection created by the SyncMaster at the specified source.
67+
68+
This setting is required, unless `spec.source.deploymentName` has been set.
69+
70+
### `spec.destination.deploymentName: string`
71+
72+
This setting specifies the name of an `ArangoDeployment` resource that runs a cluster
73+
with sync enabled.
74+
75+
This cluster configured as the replication destination.
76+
77+
### `spec.destination.deploymentNamespace: string`
78+
79+
This setting specifies the Kubernetes namespace of an `ArangoDeployment` resource specified in `spec.destination.deploymentName`.
80+
81+
If this setting is empty, the namespace of the `ArangoDeploymentReplication` is used.
82+
83+
### `spec.destination.masterEndpoints: []string`
84+
85+
This setting specifies zero or more master endpoint URL's of the destination cluster.
86+
87+
Use this setting if the destination cluster is not running inside a Kubernetes cluster
88+
that is reachable from the Kubernetes cluster the `ArangoDeploymentReplication` resource is deployed in.
89+
90+
Specifying this setting and `spec.destination.deploymentName` at the same time is not allowed.
91+
92+
### `spec.destination.auth.jwtSecretName: string`
93+
94+
This setting specifies the name of a `Secret` containing a JWT `token` used to authenticate
95+
with the SyncMaster at the specified destination.
96+
97+
This setting is required, unless `spec.destination.deploymentName` has been set.
98+
99+
### `spec.destination.tls.caSecretName: string`
100+
101+
This setting specifies the name of a `Secret` containing a TLS CA certificate `ca.crt` used to verify
102+
the TLS connection created by the SyncMaster at the specified destination.
103+
104+
This setting is required, unless `spec.destination.deploymentName` has been set.
105+
106+
### `spec.auth.clientAuthSecretName: string`
107+
108+
This setting specifies the name of a `Secret` containing a client authentication certificate,
109+
used to authenticate the SyncMaster in the destination cluster with the SyncMaster in the
110+
source cluster.

0 commit comments

Comments
 (0)