Skip to content

Commit d837ebd

Browse files
authored
GT-449 Documentation update (#1338)
1 parent 6052958 commit d837ebd

File tree

4 files changed

+80
-7
lines changed

4 files changed

+80
-7
lines changed

docs/design/README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# ArangoDB operator design documents
22

3+
- [Architecture change](./arch_change.md)
34
- [Constraints](./constraints.md)
45
- [Health](./health.md)
56
- [Metrics](./metrics.md)
@@ -17,4 +18,7 @@
1718
- [Operator API](./api.md)
1819
- [Logging](./logging.md)
1920
- [Manual Recovery](./recovery.md)
20-
- [Force rebuild out-synced Shards with broken Merkle Tree](./rebuild_out_synced_shards.md)
21+
22+
## Features
23+
- [Force rebuild out-synced Shards with broken Merkle Tree](./features/rebuild_out_synced_shards.md)
24+
- [Failover Leader service](./features/failover_leader_service.md)

docs/design/arch_change.md

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,54 @@
1-
# Member Architecture change
1+
# Architecture change
22

3-
To change manually architecture of specific member, you can use annotation:
3+
Currently `AMD64` is a default architecture in the operator
4+
To enable `ARM64` support in operator add following config in kube-arangodb chart:
5+
6+
```bash
7+
helm upgrade --install kube-arangodb \
8+
https://github.com/arangodb/kube-arangodb/releases/download/$VER/kube-arangodb-$VER.tgz \
9+
--set "operator.architectures={amd64,arm64}"
10+
```
11+
12+
## ARM64 ArangoDeployment
13+
14+
`AMD64` is a default architecture in the ArangoDeployment.
15+
`ARM64` is available since ArangoDB 3.10.0.
16+
To create `ARM64` ArangoDeployment you need to add `arm64` architecture to the deployment:
17+
18+
```yaml
19+
apiVersion: database.arangodb.com/v1
20+
kind: ArangoDeployment
21+
metadata:
22+
name: cluster
23+
spec:
24+
image: arangodb:3.10
25+
mode: Cluster
26+
architecture:
27+
- arm64
28+
```
29+
30+
## Member Architecture change (Enterprise only)
31+
32+
To migrate members from AMD64 to ARM64 you need to add `arm64` architecture to the existing deployment as a first item on the list, e.g.
33+
```yaml
34+
apiVersion: database.arangodb.com/v1
35+
kind: ArangoDeployment
36+
metadata:
37+
name: cluster
38+
spec:
39+
image: arangodb:3.10
40+
mode: Cluster
41+
architecture:
42+
- arm64
43+
- amd64
44+
```
45+
46+
All new members since now will be created on ARM64 nodes
47+
All recreated members since now will be created on ARM64 nodes
48+
49+
To change architecture of a specific member, you need to use following annotation:
450
```bash
5-
kubectl annotate pod arango-pod deployment.arangodb.com/arch=arm64
51+
kubectl annotate pod {MY_POD} deployment.arangodb.com/arch=arm64
652
```
753

854
It will add to the member status `ArchitectureMismatch` condition, e.g.:
@@ -14,7 +60,7 @@ It will add to the member status `ArchitectureMismatch` condition, e.g.:
1460
type: ArchitectureMismatch
1561
```
1662

17-
To provide requested arch changes for the member we need rotate it, so additional step is required:
63+
To provide requested arch changes for the member, we need to rotate it, so an additional step is required:
1864
```bash
19-
`kubectl annotate pod arango-pod deployment.arangodb.com/rotate=true`
65+
`kubectl annotate pod {MY_POD} deployment.arangodb.com/rotate=true`
2066
```
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Failover Leader service
2+
3+
## Overview
4+
5+
This feature is designed to solve the problem with the Leader service in Active Failover mode.
6+
It attaches the `deployment.arangodb.com/leader=true` label to the Leader member of the cluster.
7+
If a member is a Follower, then this label is removed.
8+
Above labels are used by the cluster Services to route the traffic to the Leader member.
9+
10+
In case of double Leader situation (which will be fixed in future versions of ArangoDB),
11+
the operator will remove the `deployment.arangodb.com/leader=true` label from all members,
12+
which will cause the cluster outage.
13+
14+
## How to use
15+
16+
This feature is disabled by default.
17+
To enable it use `--deployment.feature.failover-leadership ` arg, which needs be passed to the operator:
18+
19+
```shell
20+
helm upgrade --install kube-arangodb \
21+
https://github.com/arangodb/kube-arangodb/releases/download/$VER/kube-arangodb-$VER.tgz \
22+
--set "operator.args={--deployment.feature.force-rebuild-out-synced-shards}"
23+
```

docs/design/rebuild_out_synced_shards.md renamed to docs/design/features/rebuild_out_synced_shards.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This feature is disabled by default.
2222

2323
Here is the example `helm` command which enables this feature and sets shard-rebuild timeout to 10 minutes:
2424
```shell
25-
export VER=1.2.27; helm upgrade --install kube-arangodb \
25+
helm upgrade --install kube-arangodb \
2626
https://github.com/arangodb/kube-arangodb/releases/download/$VER/kube-arangodb-$VER.tgz \
2727
--set "operator.args={--deployment.feature.force-rebuild-out-synced-shards,--timeout.shard-rebuild=10m}"
2828
```

0 commit comments

Comments
 (0)