Skip to content

Commit bd932e0

Browse files
Merge pull request #586 from redis/DOC-4169-add-rdi-config-secrets
DOC-4169 add usage examples of secret config props
2 parents 47efcb6 + 35d52e9 commit bd932e0

File tree

1 file changed

+23
-100
lines changed

1 file changed

+23
-100
lines changed

content/integrate/redis-data-integration/ingest/data-pipelines/data-pipelines.md

Lines changed: 23 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,10 @@ The sections below describe the two types of configuration file in more detail.
6969
## The `config.yaml` file
7070

7171
Here is an example of a `config.yaml` file. Note that the values of the
72-
form "`${name}`" refer to environment variables that are set elsewhere. In particular,
73-
you should normally use environment variables as shown to set the source
74-
username and password rather than storing them in plain text in this
72+
form "`${name}`" refer to environment variables that you should set with the
73+
[`redis-di set-secret`]({{< relref "/integrate/redis-data-integration/ingest/reference/cli/redis-di-set-secret" >}})
74+
command. In particular, you should normally use environment variables as shown to set the source
75+
and target username and password rather than storing them in plain text in this
7576
file (see [Set secrets](#set-secrets) below for more information).
7677

7778
```yaml
@@ -87,6 +88,13 @@ sources:
8788
database: redislabscdc
8889
user: ${SOURCE_DB_USERNAME}
8990
password: ${SOURCE_DB_PASSWORD}
91+
# The names of the following properties should match the ones you used
92+
# when setting the TLS/mTLS secrets. Set only `cacert` if you are using
93+
# TLS, but set all of them if you are using mTLS:
94+
# key: ${SOURCE_DB_KEY}
95+
# cert: ${SOURCE_DB_CERT}
96+
# cacert: ${SOURCE_DB_CACERT}
97+
# key_password: ${SOURCE_DB_KEY_PASSWORD}
9098
tables:
9199
emp:
92100
snapshot_sql: "SELECT * from redislabscdc.emp WHERE empno < 1000"
@@ -114,12 +122,15 @@ targets:
114122
type: redis
115123
host: localhost
116124
port: 12000
117-
# The names of the following files should match the ones you used
125+
user: ${TARGET_DB_USERNAME}
126+
password: ${TARGET_DB_PASSWORD}
127+
# The names of the following properties should match the ones you used
118128
# when setting the TLS/mTLS secrets. Set only `cacert` if you are using
119-
# TLS, but set all three if you are using mTLS:
120-
# key: /etc/certificates/target_db/redis.key
121-
# cert: /etc/certificates/target_db/redis.crt
122-
# cacert: /etc/certificates/target_db/ca.crt
129+
# TLS, but set all of them if you are using mTLS:
130+
# key: ${TARGET_DB_KEY}
131+
# cert: ${TARGET_DB_CERT}
132+
# cacert: ${TARGET_DB_CACERT}
133+
# key_password: ${TARGET_DB_KEY_PASSWORD}
123134
```
124135

125136
The main sections of the file configure [`sources`](#sources) and [`targets`](#targets).
@@ -173,97 +184,6 @@ with a unique name that you are free to choose (here, we have used
173184
`host` and `port` of the server. You can also supply connection credentials
174185
and TLS/mTLS secrets here if you use them.
175186

176-
### Database-specific connection properties {#db-connect-props}
177-
178-
Use the following properties in the [`sources.advanced.source`](#sources) section
179-
of `config.yaml` for more control over RDI's connection to your database.
180-
181-
#### MySQL/MariaDB
182-
183-
See the
184-
[Debezium SSL mode properties](https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-mode)
185-
for a full list of properties specific to MySQL/MariaDB.
186-
187-
- [`database.ssl.keystore`](https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-keystore):
188-
(Optional) The location of the key store file. Use this for two-way authentication between
189-
your client and the MySQL/MariaDB Server.
190-
- [`database.ssl.keystore.password`](https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-keystore-password):
191-
(Optional) The password for the key store file. You only need this if you have also configured
192-
`database.ssl.keystore`.
193-
- [`database.ssl.truststore`](https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-truststore):
194-
The location of the trust store file to use for server certificate verification.
195-
- [`database.ssl.truststore.password`](https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-database-ssl-truststore-password):
196-
The password for the trust store file. This is required both to check the integrity of the truststore
197-
and to unlock it.
198-
199-
#### PostgreSQL
200-
201-
See the
202-
[Debezium connector properties](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-connector-properties)
203-
for a full list of properties specific to PostgreSQL.
204-
205-
- [`database.sslcert`](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslcert):
206-
The file path for the client's SSL certificate for the client. See
207-
[Database Connection Control Functions](https://www.postgresql.org/docs/current/libpq-connect.html)
208-
in the PostgreSQL docs for more information.
209-
- [`database.sslkey`](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslkey):
210-
The file path for the client's SSL private key. See
211-
[Database Connection Control Functions](https://www.postgresql.org/docs/current/libpq-connect.html)
212-
in the PostgreSQL docs for more information.
213-
- [`database.sslpassword`](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslpassword):
214-
The password for the client's private key file as specified `database.sslkey`. See
215-
[Database Connection Control Functions](https://www.postgresql.org/docs/current/libpq-connect.html)
216-
in the PostgreSQL docs for more information.
217-
- [`database.sslrootcert`](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslrootcert):
218-
The file path for the root certificate(s) used to validate the server. See
219-
[Database Connection Control Functions](https://www.postgresql.org/docs/current/libpq-connect.html)
220-
in the PostgreSQL docs for more information.
221-
222-
#### Oracle
223-
224-
See the Kafka
225-
[configuration docs](https://kafka.apache.org/documentation.html#configuration)
226-
for a full list of properties relevant to Oracle configuration.
227-
Where a property has a `<role>` element, you can set the role to be
228-
either `producer` or `consumer`, as appropriate.
229-
230-
- [`schema.history.internal.<role>.security.protocol`](https://kafka.apache.org/documentation.html#consumerconfigs_security.protocol):
231-
The protocol for communicating with brokers. This can take the values
232-
`PLAINTEXT`, `SSL`, `SASL_PLAINTEXT`, and `SASL_SSL`.
233-
- [`schema.history.internal.<role>.ssl.keystore.location`](https://kafka.apache.org/documentation.html#producerconfigs_ssl.keystore.location):
234-
The file path for the keystore.
235-
- [`schema.history.internal.<role>.ssl.keystore.password`](https://kafka.apache.org/documentation.html#producerconfigs_ssl.keystore.password):
236-
The password for the keystore file. You only need this you have also set
237-
`schema.history.internal.<role>.ssl.keystore.location`.
238-
- [`schema.history.internal.<role>.ssl.truststore.location`](https://kafka.apache.org/documentation.html#producerconfigs_ssl.truststore.location):
239-
The file path for the truststore.
240-
- [`schema.history.internal.<role>.ssl.truststore.password`](https://kafka.apache.org/documentation.html#producerconfigs_ssl.truststore.password):
241-
The password for the trust store file. If you don't set a password, RDI will still use the trust store
242-
file specified in `schema.history.internal.<role>.ssl.truststore.location` but without integrity
243-
checking.
244-
- [`schema.history.internal.<role>.ssl.key.password`](https://kafka.apache.org/documentation.html#producerconfigs_ssl.key.password):
245-
The password for the private key in the keystore file specified in
246-
`schema.history.internal.<role>.ssl.keystore.location`.
247-
- [`database.dbname`](https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-property-database-dbname):
248-
The name of the database you want to connect to. If you are using a container database environment,
249-
then you should set this to the name of the root container database (CDB), rather than an included
250-
pluggable database (PDB).
251-
- [`database.pdb.name`](https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-property-database-pdb-name):
252-
The name of the Oracle pluggable database you want to connect to. You can only use this with
253-
container database (CDB) installations.
254-
- [`decimal.handling.mode`](https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-property-decimal-handling-mode):
255-
This specifies the data format for floating point values in `NUMBER`, `DECIMAL` and `NUMERIC`
256-
columns. This can take the values `precise` (store values with any number of decimal places),
257-
`double` (use double-precision floating point), or `string` (encode numbers as strings).
258-
The default value is `precise`. See
259-
[Oracle numeric types](https://debezium.io/documentation/reference/stable/connectors/oracle.html#oracle-numeric-types)
260-
for more information about decimal handling.
261-
- `key.converter.schemas.enable` and `value.converter.schemas.enable`:
262-
Boolean values specifying whether or not you want to add JSON schemas to
263-
serialized data. See Kafka's [connect transforms](https://kafka.apache.org/documentation/#connect_transforms)
264-
docs for an example.
265-
266-
267187
## Job files
268188

269189
You can optionally supply one or more job files that specify how you want to
@@ -404,7 +324,10 @@ Before you deploy your pipeline, you must set the authentication secrets for the
404324
source and target databases. Each secret has a corresponding property name that
405325
you can pass to the
406326
[`redis-di set-secret`]({{< relref "/integrate/redis-data-integration/ingest/reference/cli/redis-di-set-secret" >}})
407-
command to set the property's value. For example, you would use the
327+
command to set the property's value. You can then refer to these properties
328+
in `config.yaml` using the syntax "`${PROPERTY_NAME}`"
329+
(the sample [config.yaml file](#the-configyaml-file) shows these properties in use).
330+
For example, you would use the
408331
following command line to set the source database username to `myUserName`:
409332

410333
```bash

0 commit comments

Comments
 (0)