Skip to content

Configuration reference

# Clusters definition
clusters:

  # Cluster alias (used with the --cluster option to refer to this cluster config)
  subito:

    # Kafka clients properties that will be injected to all Kafka clients by Zoe at runtime
    # For more information on available properties : 
    #   - consumer : https://kafka.apache.org/documentation/#consumerconfigs
    #   - producer : https://kafka.apache.org/documentation/#producerconfigs
    # This section can contain secrets.
    props:
      bootstrap.servers: my-kafka.example.com:9092
      key.deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value.deserializer: io.confluent.kafka.serializers.KafkaAvroDeserializer
      sasl.jaas.config: secret:JAAS_CONFIG
      security.protocol: SASL_SSL
      sasl.mechanism: SCRAM-SHA-256

    # Schema registry address of the cluster. Will be used by zoe when interacting with the schema registry (schemas list, describe and deploy command)
    # When this property is set, zoe automatically injects the property 'schema.registry.url' into the Kafka clients props.
    registry: https://my-registry.example.com

    # A list of consumer groups keyed by their alias. Useful when using the 'zoe groups' command to interact with consumer groups.
    # When you need to refer to a consumer group, you can use the alias instead of the full name of the consumer group.
    groups:
      my-group: long-consumer-group-name

    # Topics config section. Basically a dictionary with the topic's alias as the key and the topic's configuration as the value.
    # The topic's configuration basically includes :
    #   - name: the full name of the topic
    #   - subject (optional) : the subject name of the avro schema of the topic.
    topics:

      topic-alias:
        name: full-name-of-the-topic-in-the-cluster
        subject: subject-name-of-the-topic
        # Override any kafka client property that is specific to a topic
        propsOverride:
          key.deserializer: org.apache.kafka.common.serialization.StringDeserializer
          value.deserializer: org.apache.kafka.common.serialization.StringDeserializer

# Runners configuration
runners:

  # Default runner to use when the '-r' option is not specified
  default: lambda

  # Runners configuration
  config:

    # The kubernetes runner configuration
    kubernetes:
      # Kubernetes context to use
      context: mu-kube-context
      # Namespace to use
      namespace: env-staging
      # Whether to delete the pods after completion
      deletePodAfterCompletion: true
      # Number of CPUs
      cpu: "1"
      # Memory limit
      memory: "512M"
      # Timeout of the commands
      timeoutMs: 300000
      # Annotations to attach to the pods 
      annotations:
        key1: value1
        key2: value2

    # The lambda runner configuration
    lambda:

      # This section sets the deployment context of the lambda function. Mainly used with the 'zoe lambda deploy' command.
      deploy:
        subnets: [ "subnet-xxxxxx" ]
        securityGroups: [ "sg-yyyyy" ]
        memory: 512
        timeout: 500

      # Credentials provider for the lambda client. More credentials type can be provided.
      # Cf. The runners section in The advanced usage guide.
      credentials:
        type: "profile"
        name: "my-profile"

      # AWS Region for the lambda client
      awsRegion: eu-west-1

# Registered expressions section
# Cf. The registered expression guide in the Advanced usage section.
expressions:
  short_id: "ends_with(id, '{{ value }}')"

# Secrets provider
# Cf. The secrets provider guide in the Advanced usage section. 
secrets:
  provider: "exec"
  command: [ "my-command", "{secretName}", "{context}" ]