apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
metadata:
name: my-mirror-maker2
spec:
version: 2.8.0
replicas: 3
connectCluster: "my-cluster-target"
clusters:
- alias: "my-cluster-source"
authentication:
certificateAndKey:
certificate: source.crt
key: source.key
secretName: my-user-source
type: tls
bootstrapServers: my-cluster-source-kafka-bootstrap:9092
tls:
trustedCertificates:
- certificate: ca.crt
secretName: my-cluster-source-cluster-ca-cert
- alias: "my-cluster-target"
authentication:
certificateAndKey:
certificate: target.crt
key: target.key
secretName: my-user-target
type: tls
bootstrapServers: my-cluster-target-kafka-bootstrap:9092
config:
config.storage.replication.factor: 1
offset.storage.replication.factor: 1
status.storage.replication.factor: 1
ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
ssl.enabled.protocols: "TLSv1.2"
ssl.protocol: "TLSv1.2"
ssl.endpoint.identification.algorithm: HTTPS
tls:
trustedCertificates:
- certificate: ca.crt
secretName: my-cluster-target-cluster-ca-cert
mirrors:
- sourceCluster: "my-cluster-source"
targetCluster: "my-cluster-target"
sourceConnector:
tasksMax: 10
config:
replication.factor: 1
offset-syncs.topic.replication.factor: 1
sync.topic.acls.enabled: "false"
refresh.topics.interval.seconds: 60
replication.policy.separator: ""
replication.policy.class: "io.strimzi.kafka.connect.mirror.IdentityReplicationPolicy"
heartbeatConnector:
config:
heartbeats.topic.replication.factor: 1
checkpointConnector:
config:
checkpoints.topic.replication.factor: 1
refresh.groups.interval.seconds: 600
sync.group.offsets.enabled: true
sync.group.offsets.interval.seconds: 60
emit.checkpoints.interval.seconds: 60
replication.policy.class: "io.strimzi.kafka.connect.mirror.IdentityReplicationPolicy"
topicsPattern: ".*"
groupsPattern: "group1|group2|group3"
resources:
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "2"
memory: 2Gi
logging:
type: inline
loggers:
connect.root.logger.level: "INFO"
readinessProbe:
initialDelaySeconds: 15
timeoutSeconds: 5
livenessProbe:
initialDelaySeconds: 15
timeoutSeconds: 5
jvmOptions:
"-Xmx": "1g"
"-Xms": "1g"
image: my-org/my-image:latest
template:
pod:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: application
operator: In
values:
- postgresql
- mongodb
topologyKey: "kubernetes.io/hostname"
connectContainer:
env:
- name: JAEGER_SERVICE_NAME
value: my-jaeger-service
- name: JAEGER_AGENT_HOST
value: jaeger-agent-name
- name: JAEGER_AGENT_PORT
value: "6831"
tracing:
type: jaeger
externalConfiguration:
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws-creds
key: awsAccessKey
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws-creds
key: awsSecretAccessKey
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
metadata:
name: my-mirror-maker2
spec:
version: 2.8.0
1
replicas: 3
2
connectCluster: "my-cluster-target"
3
clusters:
4
- alias: "my-cluster-source"
5
authentication:
6
certificateAndKey:
certificate: source.crt
key: source.key
secretName: my-user-source
type: tls
bootstrapServers: my-cluster-source-kafka-bootstrap:9092
7
tls:
8
trustedCertificates:
- certificate: ca.crt
secretName: my-cluster-source-cluster-ca-cert
- alias: "my-cluster-target"
9
authentication:
10
certificateAndKey:
certificate: target.crt
key: target.key
secretName: my-user-target
type: tls
bootstrapServers: my-cluster-target-kafka-bootstrap:9092
11
config:
12
config.storage.replication.factor: 1
offset.storage.replication.factor: 1
status.storage.replication.factor: 1
ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
13
ssl.enabled.protocols: "TLSv1.2"
ssl.protocol: "TLSv1.2"
ssl.endpoint.identification.algorithm: HTTPS
14
tls:
15
trustedCertificates:
- certificate: ca.crt
secretName: my-cluster-target-cluster-ca-cert
mirrors:
16
- sourceCluster: "my-cluster-source"
17
targetCluster: "my-cluster-target"
18
sourceConnector:
19
tasksMax: 10
20
config:
replication.factor: 1
21
offset-syncs.topic.replication.factor: 1
22
sync.topic.acls.enabled: "false"
23
refresh.topics.interval.seconds: 60
24
replication.policy.separator: ""
25
replication.policy.class: "io.strimzi.kafka.connect.mirror.IdentityReplicationPolicy"
26
heartbeatConnector:
27
config:
heartbeats.topic.replication.factor: 1
28
checkpointConnector:
29
config:
checkpoints.topic.replication.factor: 1
30
refresh.groups.interval.seconds: 600
31
sync.group.offsets.enabled: true
32
sync.group.offsets.interval.seconds: 60
33
emit.checkpoints.interval.seconds: 60
34
replication.policy.class: "io.strimzi.kafka.connect.mirror.IdentityReplicationPolicy"
topicsPattern: ".*"
35
groupsPattern: "group1|group2|group3"
36
resources:
37
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "2"
memory: 2Gi
logging:
38
type: inline
loggers:
connect.root.logger.level: "INFO"
readinessProbe:
39
initialDelaySeconds: 15
timeoutSeconds: 5
livenessProbe:
initialDelaySeconds: 15
timeoutSeconds: 5
jvmOptions:
40
"-Xmx": "1g"
"-Xms": "1g"
image: my-org/my-image:latest
41
template:
42
pod:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: application
operator: In
values:
- postgresql
- mongodb
topologyKey: "kubernetes.io/hostname"
connectContainer:
43
env:
- name: JAEGER_SERVICE_NAME
value: my-jaeger-service
- name: JAEGER_AGENT_HOST
value: jaeger-agent-name
- name: JAEGER_AGENT_PORT
value: "6831"
tracing:
type: jaeger
44
externalConfiguration:
45
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws-creds
key: awsAccessKey
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws-creds
key: awsSecretAccessKey