MCPcopy Index your code
hub / github.com/debezium/debezium-operator

github.com/debezium/debezium-operator @v3.6.0.CR1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.6.0.CR1 ↗ · + Follow
789 symbols 2,383 edges 127 files 50 documented · 6%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Debezium Operator

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

Installation steps

The operator can be installed via OLM, Helm chart or by creating the resources directly.

Helm Chart Installation

Helm is the preferred way to install the operator releases. The operator is available in the Debezium Helm Chart Repository.

helm repo add debezium https://charts.debezium.io
helm install my-debezium-operator debezium/debezium-operator --version $DO_VERSION -n $NAMESPACE

Available versions can be found in the Debezium Helm Chart Repository.

OLM Installation

Released versions of the operator can be installed via the Operator Lifecycle Manager (OLM). The operator is available in the OperatorHub.

Direct Installation

This method currently support only per namespace installation. To install the operator to your Kubernetes cluster, simply create the descriptors available in the k8 directory.

kubectl create -f k8/ -n $NAMESPACE 

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
        nodeSelector: Map<String, String>
        tolerations: # https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#toleration-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

Extension points exported contracts — how you extend this code

Store (Interface)
(no doc) [10 implementers]
debezium-operator-api/src/main/java/io/debezium/operator/api/model/source/storage/Store.java
DeployableResourceGroup (Interface)
(no doc) [8 implementers]
systemtests/src/test/java/io/debezium/operator/systemtests/resources/DeployableResourceGroup.java
DocumentationFormatter (Interface)
(no doc) [2 implementers]
debezium-operator-docs-gen/src/main/java/io/debezium/operator/docs/output/DocumentationFormatter.java
ConfigMappable (Interface)
(no doc) [19 implementers]
debezium-operator-api/src/main/java/io/debezium/operator/api/config/ConfigMappable.java
HasMetadataTemplate (Interface)
Interface for kubernetes objects witch metadata [2 implementers]
debezium-operator-api/src/main/java/io/debezium/operator/api/model/runtime/templates/HasMetadataTemplate.java

Core symbols most depended-on inside this repo

build
called by 106
debezium-operator-docs-gen/src/main/java/io/debezium/operator/docs/model/Documentation.java
getMetadata
called by 100
debezium-operator-api/src/main/java/io/debezium/operator/api/model/runtime/templates/HasMetadataTemplate.java
getName
called by 74
debezium-operator-api/src/main/java/io/debezium/operator/api/model/source/storage/ConfigMapStore.java
put
called by 73
debezium-operator-api/src/main/java/io/debezium/operator/api/config/ConfigMapping.java
empty
called by 47
debezium-operator-api/src/main/java/io/debezium/operator/api/config/ConfigMapping.java
putAll
called by 44
debezium-operator-api/src/main/java/io/debezium/operator/api/config/ConfigMapping.java
equals
called by 42
debezium-operator-api/src/main/java/io/debezium/operator/api/model/runtime/templates/MetadataTemplate.java
of
called by 41
debezium-operator-core/src/main/java/io/debezium/operator/core/dependent/DeploymentDependent.java

Shape

Method 657
Class 123
Interface 5
Enum 4

Languages

Java100%

Modules by API surface

debezium-operator-docs-gen/src/main/java/io/debezium/operator/docs/AbstractDocsProcessor.java37 symbols
debezium-operator-api/src/main/java/io/debezium/operator/api/config/ConfigMapping.java32 symbols
debezium-operator-core/src/main/java/io/debezium/operator/core/dependent/DeploymentDependent.java25 symbols
debezium-operator-api/src/main/java/io/debezium/operator/api/model/DebeziumServerSpec.java21 symbols
debezium-operator-api/src/main/java/io/debezium/operator/api/model/source/Offset.java19 symbols
systemtests/src/test/java/io/debezium/operator/systemtests/resources/databases/MysqlResource.java17 symbols
debezium-operator-api/src/main/java/io/debezium/operator/api/model/source/SchemaHistory.java17 symbols
debezium-operator-api/src/main/java/io/debezium/operator/api/model/runtime/Runtime.java17 symbols
systemtests/src/test/java/io/debezium/operator/systemtests/resources/server/DebeziumServerResource.java15 symbols
debezium-operator-api/src/test/java/io/debezium/operator/api/config/ConfigMappingTest.java15 symbols
debezium-operator-api/src/main/java/io/debezium/operator/api/model/source/storage/RedisStore.java15 symbols
systemtests/src/test/java/io/debezium/operator/systemtests/resources/dmt/DmtClient.java14 symbols

Datastores touched

(mysql)Database · 1 repos
debeziumDatabase · 1 repos
(mongodb)Database · 1 repos
inventoryDatabase · 1 repos

For agents

$ claude mcp add debezium-operator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page