Skip to content

debezium/debezium-operator

Repository files navigation

Debezium Operator

Debezium operator provides an easy way to run the Debezium Server on Kubernetes or Openshift.

Installation steps

The debezium operator currently support only per namespace installation unless installing via OLM. To install the operator to your kubernetes cluster, simply create the descriptors available in the k8 directory.

kubectl create -f k8/ -n $NAMESPACE 

Note: In the future the operator will support OLM and Helm chart installations.

Quickstart Example

The exmaples/postgres directory contains an example deployment of debezium server with PostgreSQL source and kafka sink.

# Install Strimzi Kafka operator
kubectl create -f "https://strimzi.io/install/latest?namespace=$NAMESPACE" -n $NAMESPACE

# Deploy PostgreSQL, Kafka and Debezium Server
kubectl create -f examples/postgres/ -n $NAMESPACE    

DebeziumServerSpec Reference

The snippet bellow provides a rough outline of the DebeziumServer spec. See the full API reference for more details.

spec:
  version: String
  image: String # exclusive with version
  runtime:
    environment:
      vars:
        - name: String
          value: String
      from: EnvFromSource array # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#envfromsource-v1-core
    storage:
      data:
        type: persistent | ephemeral  # enum
        claimName: String # only valid and required for "persistent" type
      external: Volume array # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#volume-v1-core
    jmx:
      enabled: boolean
      port: int # defaults to 1099
    templates:
      container:
        resources: # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core
        securityContext: # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core
      pod:
        metadata:
          annotations: Map<String, String>
          labels: Map<String, String>
        imagePullSecrets: List # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#localobjectreference-v1-core
        affinity: # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#affinity-v1-core
        securityContext: # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core
  quarkus:
    config:
      # quarkus properties 
  format:
    value:
      type: String
      config:
        # other format properties
    key:
      type: String
      config:
        # other format properties
    header:
      type: String
      config:
        # other format properties
  transforms:
    - type: String
      predicate: String
      negate: Boolean
      config:
        # other transformation properties
  predicates:
    name:
      type: String
      config:
        # other preticate properties
  sink:
    type: String
    config:
      # other sink properties
  source:
    class: String
    config:
      # other source connector properties