Skip to content

Commit 576a6b7

Browse files
author
Steffen Karlsson
committed
Raising proposal based on PR discussion for: Enhance KafkaBridge resource with consumer inactivity timeout and HTTP consumer/producer parts enablement
Signed-off-by: Steffen Karlsson <steffen.karlsson@maersk.com>
1 parent cea87dd commit 576a6b7

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<!-- This template is provided as an example with sections you may wish to comment on with respect to your proposal. Add or remove sections as required to best articulate the proposal. -->
2+
3+
# Enhance KafkaBridge resource with consumer inactivity timeout and HTTP consumer/producer parts enablement
4+
5+
Providing support in the Strimzi Kubernetes Operator for following properties supported in the Strimzi HTTP Kafka Bridge:
6+
* `http.timeoutSeconds` - For deleting inactive consumers after a timeout (disabled by default).
7+
* `http.consumer.enabled` - To enable/disable the HTTP consumer part (enabled by default).
8+
* `http.producer.enabled` - To enable/disable the HTTP producer part (enabled by default.
9+
10+
## Current situation
11+
12+
Properties are not yet supported in the Strimzi Kubernetes Operator.
13+
14+
## Motivation
15+
16+
Raised in the discussion here: https://github.com/strimzi/strimzi-kafka-operator/issues/8732 and triaged on 29.6.2023: We should enable the configuration of these fields. But how should the API look like? Should have a proposal to clarify the API changes.
17+
18+
## Proposal
19+
20+
Proposal is implemented here: https://github.com/strimzi/strimzi-kafka-operator/pull/9820, both Paolo and Jakub suggested to raise a proposal for the implementation of `http.consumer.enabled` and `http.producer.enabled` specifically, as it can be done in two ways, motivated here: https://github.com/strimzi/strimzi-kafka-operator/pull/9820#discussion_r1523500115.
21+
22+
### Version 1 (which is currently implemented):
23+
24+
Adding dedicated section under the `http` properties for defining enablement of producer and consumer:
25+
```yaml
26+
spec:
27+
http:
28+
type: object
29+
properties:
30+
timeoutSeconds:
31+
type: integer
32+
description: The timeout in seconds for deleting inactive consumers.
33+
producer:
34+
type: object
35+
properties:
36+
enabled:
37+
type: boolean
38+
description: Whether the HTTP producer should be enabled or disabled.
39+
description: Configurations for the HTTP Producer.
40+
consumer:
41+
type: object
42+
properties:
43+
enabled:
44+
type: boolean
45+
description: Whether the HTTP consumer should be enabled or disabled.
46+
description: Configurations for the HTTP Consumer.
47+
```
48+
49+
### Version 2:
50+
51+
Adding enablement of producer and consumer to their own sections, example:
52+
```yaml
53+
spec:
54+
consumer:
55+
type: object
56+
properties:
57+
enabled:
58+
type: boolean
59+
description: Whether the HTTP consumer should be enabled or disabled.
60+
config:
61+
x-kubernetes-preserve-unknown-fields: true
62+
type: object
63+
description: "The Kafka consumer configuration used for consumer instances created by the bridge. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, group.id, sasl., security. (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)."
64+
description: Kafka consumer related configuration.
65+
producer:
66+
type: object
67+
properties:
68+
enabled:
69+
type: boolean
70+
description: Whether the HTTP producer should be enabled or disabled.
71+
config:
72+
x-kubernetes-preserve-unknown-fields: true
73+
type: object
74+
description: "The Kafka producer configuration used for producer instances created by the bridge. Properties with the following prefixes cannot be set: ssl., bootstrap.servers, sasl., security. (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)."
75+
description: Kafka producer related configuration.```
76+
77+
## Affected/not affected projects
78+
79+
PR raised for the HTTP Bridge to use the new ENV parameters introduced from the operator: https://github.com/strimzi/strimzi-kafka-bridge/pull/882
80+
81+
## Compatibility
82+
83+
None.
84+
85+
## Rejected alternatives
86+
87+
None.

0 commit comments

Comments
 (0)