Skip to content

Commit afa315a

Browse files
authored
Merge pull request #41 from arangodb/tls-spec
Reworked TLS spec
2 parents dd3f574 + f246a5d commit afa315a

File tree

1 file changed

+40
-22
lines changed

1 file changed

+40
-22
lines changed

docs/user/custom_resource.md

+40-22
Original file line numberDiff line numberDiff line change
@@ -137,34 +137,38 @@ and stored in a `Secret` with given name.
137137
Changing a JWT token results in stopping the entire cluster
138138
and restarting it.
139139

140-
### `spec.ssl.keySecretName: string`
140+
### `spec.tls.caSecretName: string`
141141

142142
This setting specifies the name of a kubernetes `Secret` that contains
143-
a PEM encoded server certificate + private key used for all TLS connections
144-
of the ArangoDB servers.
145-
The default value is empty.
143+
a standard CA certificate + private key used to sign certificates for individual
144+
ArangoDB servers.
145+
The default value is empty. TBD
146146

147-
If you specify a name of a `Secret` that does not exist, a certificate + key is created
148-
using the values of `spec.ssl.serverName` & `spec.ssl.organizationName`
147+
If you specify a name of a `Secret` that does not exist, a self-signed CA certificate + key is created
149148
and stored in a `Secret` with given name.
150149

151-
### `spec.ssl.organizationName: string`
150+
The specified `Secret`, must contain the following data fields:
152151

153-
This setting specifies the name of an organization that is put in an automatically
154-
generated SSL certificate (see `spec.ssl.keySecretName`).
155-
The default value is empty.
152+
- `ca.crt` PEM encoded public key of the CA certificate
153+
- `ca.key` PEM encoded private key of the CA certificate
156154

157-
### `spec.ssl.serverName: string`
155+
### `spec.tls.altNames: []string`
158156

159-
This setting specifies the name of a server that is put in an automatically
160-
generated SSL certificate (see `spec.ssl.keySecretName`).
161-
Besides this name, the internal DNS names of all ArangoDB servers are added
162-
to the list of valid hostnames of the certificate. It is therefore not possible
163-
to use this feature when scaling the cluster to more servers, since the newly
164-
added servers will not be listed in the certificate.
157+
This setting specifies a list of alternate names that will be added to all generated
158+
certificates. These names can be DNS names or email addresses.
165159
The default value is empty.
166160

167-
**TODO Really think this through. Restriction does not sound right.**
161+
### `spec.tls.ttl: duration`
162+
163+
This setting specifies the time to live of all generated
164+
server certificates.
165+
The default value is `2160h` (about 3 month).
166+
167+
When the server certificate is about to expire, it will be automatically replaced
168+
by a new one and the affected server will be restarted.
169+
170+
Note: The time to live of the CA certificate (when created automatically)
171+
will be set to 10 years.
168172

169173
### `spec.sync.enabled: bool`
170174

@@ -208,12 +212,26 @@ Possible values are:
208212

209213
- `direct` (default) for direct HTTP connections between the 2 data centers.
210214

211-
### `spec.sync.ssl.keySecretName: string`
215+
### `spec.sync.tls.caSecretName: string`
212216

213217
This setting specifies the name of a kubernetes `Secret` that contains
214-
a PEM encoded server certificate + private key used for the TLS connections
215-
of all ArangoSync master servers.
216-
This is a required setting when `spec.sync.enabled` is `true`.
218+
a standard CA certificate + private key used to sign certificates for individual
219+
ArangoSync master servers.
220+
221+
When no name is specified, it defaults to `<deployment-name>-sync-ca`.
222+
223+
If you specify a name of a `Secret` that does not exist, a self-signed CA certificate + key is created
224+
and stored in a `Secret` with given name.
225+
226+
The specified `Secret`, must contain the following data fields:
227+
228+
- `ca.crt` PEM encoded public key of the CA certificate
229+
- `ca.key` PEM encoded private key of the CA certificate
230+
231+
### `spec.sync.tls.altNames: []string`
232+
233+
This setting specifies a list of alternate names that will be added to all generated
234+
certificates. These names can be DNS names or email addresses.
217235
The default value is empty.
218236

219237
### `spec.sync.monitoring.tokenSecretName: string`

0 commit comments

Comments
 (0)