Skip to content

Commit 09135f3

Browse files
committed
ESCLOUD-985, ESCLOUD-719: Read-only replia release
Also includes docs for scheduling constraints.
1 parent 823fb8e commit 09135f3

File tree

2 files changed

+178
-36
lines changed

2 files changed

+178
-36
lines changed

docs/server/kubernetes-operator/getting-started/resource-types.md

+57-34
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,60 @@ This resource type is used to define a database deployment.
1313

1414
### API
1515

16-
| Field | Required | Description |
17-
|---------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
18-
| `replicas` _integer_ | Yes | Number of nodes in a database cluster (1 or 3) |
19-
| `image` _string_ | Yes | KurrentDB container image URL |
20-
| `resources` _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core)_ | No | Database container resource limits and requests |
21-
| `storage` _[PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimspec-v1-core)_ | Yes | Persistent volume claim settings for the underlying data volume |
22-
| `network` _[KurrentDbNetwork](#kurrentdbnetwork)_ | Yes | Defines the network configuration to use with the database |
23-
| `configuration` _yaml_ | No | Additional configuration to use with the database |
24-
| `sourceBackup` _string_ | No | Backup name to restore a cluster from |
25-
| `security` _[KurrentDbSecurity](#kurrentdbecurity)_ | No | Security configuration to use for the database. This is optional, if not specified the cluster will be created without security enabled. |
26-
| `licenseSecret` _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secret-v1-core)_ | No | A secret that contains the Enterprise license for the database |
27-
28-
#### KurrentDbNetwork
29-
30-
| Field | Required | Description |
31-
|------------------------------------------------------------------|----------|--------------------------------------------------------------------------------|
32-
| `domain` _string_ | Yes | Domain used for external DNS e.g. advertised address exposed in the gossip state |
33-
| `loadBalancer` _[KurrentDbLoadBalancer](#kurrentdbloadbalancer)_ | Yes | Defines a load balancer to use with the database |
34-
35-
#### KurrentDbLoadBalancer
36-
37-
| Field | Required | Description |
38-
|---------------------|----------|----------------------------------------------------------------|
39-
| `enabled` _boolean_ | Yes | Determines if a load balancer should be deployed for each node |
40-
| `allowedIps` _string array_ | No | List of IP ranges allowed by the load balancer (default will allow all access) |
41-
42-
#### KurrentDbSecurity
16+
| Field | Required | Description |
17+
|---------------------------------------------------------------------------------------------------------------------------------------------|----------|------------------------------------------------------------------------------------------------------------------------------------------|
18+
| `replicas` _integer_ | Yes | Number of nodes in a database cluster (1 or 3) |
19+
| `image` _string_ | Yes | KurrentDB container image URL |
20+
| `resources` _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core)_ | No | Database container resource limits and requests |
21+
| `storage` _[PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimspec-v1-core)_ | Yes | Persistent volume claim settings for the underlying data volume |
22+
| `network` _[KurrentDBNetwork](#kurrentdbnetwork)_ | Yes | Defines the network configuration to use with the database |
23+
| `configuration` _yaml_ | No | Additional configuration to use with the database |
24+
| `sourceBackup` _string_ | No | Backup name to restore a cluster from |
25+
| `security` _[KurrentDBSecurity](#kurrentdbecurity)_ | No | Security configuration to use for the database. This is optional, if not specified the cluster will be created without security enabled. |
26+
| `licenseSecret` _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secret-v1-core)_ | No | A secret that contains the Enterprise license for the database |
27+
| `constraints` _[KurrentDBConstraints](#kurrentdbconstraints)_ | No | Scheduling constraints for the Kurrent DB pod. |
28+
| `readOnlyReplias` _[KurrentDBReadOnlyReplicasSpec](#kurrentdbreadonlyreplicasspec)_ | No | Read-only replica configuration the Kurrent DB Cluster. |
29+
30+
#### KurrentDBReadOnlyReplicasSpec
31+
32+
Other than `replicas`, each of the fields in `KurrentDBReadOnlyReplicasSpec` default to the corresponding values from the main KurrentDBSpec.
33+
34+
| Field | Required | Description |
35+
|---------------------------------------------------------------------------------------------------------------------------------------------|----------|------------------------------------------------------------------|
36+
| `replicas` _integer_ | No | Number of read-only replicas in the cluster. Defaults to zero. |
37+
| `resources` _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core)_ | No | Database container resource limits and requests. |
38+
| `storage` _[PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimspec-v1-core)_ | No | Persistent volume claim settings for the underlying data volume. |
39+
| `configuration` _yaml_ | No | Additional configuration to use with the database. |
40+
| `constraints` _[KurrentDBConstraints](#kurrentdbconstraints)_ | No | Scheduling constraints for the Kurrent DB pod. |
41+
42+
#### KurrentDBConstraints
43+
44+
| Field | Required | Description |
45+
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|-------------------------------------------------------------------------------------------|
46+
| `nodeSelector` _yaml_ | No | Identifies nodes that the Kurrent DB may consider during scheduling. |
47+
| `affinity` _[Affinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#affinity-v1-core)_ | No | The node affinity, pod affinity, and pod anti-affinity for scheduling the Kurrent DB pod. |
48+
| `Tolerations` _list of [Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core)_ | No | The tolerations for scheduling the Kurrent DB pod. |
49+
| `TopologySpreadConstraints` _list of [TopologySpreadConstraint](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#topologyspreadconstraint-v1-core)_ | No | The topology spread constraints for scheduling the Kurrent DB pod. |
50+
51+
#### KurrentDBNetwork
52+
53+
| Field | Required | Description |
54+
|------------------------------------------------------------------|----------|----------------------------------------------------------------------------------|
55+
| `domain` _string_ | Yes | Domain used for external DNS e.g. advertised address exposed in the gossip state |
56+
| `loadBalancer` _[KurrentDBLoadBalancer](#kurrentdbloadbalancer)_ | Yes | Defines a load balancer to use with the database |
57+
58+
#### KurrentDBLoadBalancer
59+
60+
| Field | Required | Description |
61+
|------------------------------|----------|--------------------------------------------------------------------------------|
62+
| `enabled` _boolean_ | Yes | Determines if a load balancer should be deployed for each node |
63+
| `allowedIps` _string array_ | No | List of IP ranges allowed by the load balancer (default will allow all access) |
64+
65+
#### KurrentDBSecurity
4366

4467
| Field | Required | Description |
4568
|------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------|
46-
| `certificateSubjectName` _string_ | No | Subject name used in the TLS certificate (this maps directly to the database property `CertificateSubjectName`) |
69+
| `certificateSubjectName` _string_ | No | Subject name used in the TLS certificate (this maps directly to the database property `CertificateSubjectName`) |
4770
| `certificateReservedNodeCommonName` _string_ | No | Common name for the TLS certificate (this maps directly to the database property `CertificateReservedNodeCommonName`) |
4871
| `certificateAuthoritySecret` _[CertificateSecret](#certificatesecret)_ | No | Secret containing the CA TLS certificate |
4972
| `certificateSecret` _[CertificateSecret](#certificatesecret)_ | Yes | Secret containing the TLS certificate to use |
@@ -59,16 +82,16 @@ This resource type is used to define a database deployment.
5982

6083
## KurrentDBBackup
6184

62-
This resource type is used to define a backup for an existing database deployment.
85+
This resource type is used to define a backup for an existing database deployment.
6386

6487
:::important
6588
Resources of this type must be created within the same namespace as the target database cluster to backup.
6689
:::
6790

6891
### API
6992

70-
| Field | Required | Description |
71-
|------------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
72-
| `clusterName` _string_ | Yes | Name of the source database cluster |
73-
| `nodeName` _string_ | No | Specific node name within the database cluster to use as the backup. If this is not specified, the leader will be picked as the source. |
74-
| `volumeSnapshotClassName` _string_ | Yes | The name of the underlying volume snapshot class to use. |
93+
| Field | Required | Description |
94+
|------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------|
95+
| `clusterName` _string_ | Yes | Name of the source database cluster |
96+
| `nodeName` _string_ | No | Specific node name within the database cluster to use as the backup. If this is not specified, the leader will be picked as the source. |
97+
| `volumeSnapshotClassName` _string_ | Yes | The name of the underlying volume snapshot class to use. |

0 commit comments

Comments
 (0)