To provision Lenses you need to construct provision.yaml, a file in YAML format describing the resources you want Lenses to connect to. This file will be provided to Lenses CLI to communicate the appropriate state to Lenses API.
provision.yaml
Currently provision.yaml support license/connections and uses the following high-level structure:
license: fileRef: # one of the following options # inline: ... # filePath: ... # URL: ... connections: [CONNECTION NAME]: templateName: [CONNECTION TEMPLATE] configurationObject: ... [CONNECTION NAME]: templateName: [CONNECTION TEMPLATE] configurationObject: ...
To set Lenses license use this format:
license: fileRef: # Read more for files below inline: '[LICENSE FILE CONTENTS]'
A few notes:
fileRef
Under this root key you can describe the connection details towards multiple core services. For more information see The whole list of services
To set a connection use this format:
connections: [CONNECTION NAME]: templateName: [CONNECTION TEMPLATE] tags: [] # Comma separated list of strings, is required even as an empty array `[]` configurationObject: ...
CONNECTION NAME
Constant connection name
configurationObject
Here’s an example with three connections:
connections: kerberos: # Constant connection name templateName: Kerberos tags: [ "production", "cluster-1" ] configurationObject: kerberosKrb5: fileRef: inline: ... kafka: # Constant connection name templateName: Kafka tags: [ "production", "cluster-1" ] configurationObject: protocol: SASL_SSL kafkaBootstrapServers: - SASL_SSL://my-cluster-1:9096 - SASL_SSL://my-cluster-2:9096 - SASL_SSL://my-cluster-3:9096 keytab: fileRef: inline: ... saslJaasConfig: | com.sun.security.auth.module.Krb5LoginModule required ... saslMechanism: GSSAPI sslTruststore: fileRef: inline: ... sslTruststorePassword: ... custom-connect-cluster: # templateName: KafkaConnect tags: [ "production", "cluster-1", "lenses-processors" ] configurationObject: workers: - https://my-custom-connect-cluster:8083 metricsPort: 8084 metricsSsl: true metricsType: JMX
Some connections depend on others. One example is the AWS Glue Schema Registry connection, which depends on an AWS connection. This is an example to provision Lenses with an AWS connection named my-aws-connection and an AWS Glue Schema Registry that references it:
my-aws-connection
connections: schema-registry: templateName: AWSGlueSchemaRegistry tags: [] configurationObject: accessKeyId: reference: my-aws-connection secretAccessKey: reference: my-aws-connection glueRegistryArn: value: arn:aws:glue:region:123123123:registry/my-registry my-aws-connection: templateName: AWS tags: [] configurationObject: accessKeyId: ExampleAccessKey secretAccessKey: ExampleSecretAccessKey region: my-region
fileRef is a specific key used to reference a file using one of these supported options:
inline
URL
filepath
On this page