Skip to content

Commit e201ea3

Browse files
authored
Merge pull request #311 native + nonroot images with entrypoints
Extract entrypoint command from bin scripts, try native-image zookeeper
2 parents 8148c95 + cee5278 commit e201ea3

38 files changed

+355
-61
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ Then pick and chose from patches our [example variants](https://github.com/Yolea
5757

5858
| tag | k8s ≥ | highlights |
5959
| ------ | ----- | ----------- |
60-
| TBD | 1.13+ | Kafka [2.4.0](https://github.com/Yolean/kubernetes-kafka/pull/297) + [standard storage class](https://github.com/Yolean/kubernetes-kafka/pull/294) |
60+
| v7.0.0 | 1.15+ | [Breaking](https://github.com/Yolean/kubernetes-kafka/pull/311#issuecomment-657181714) with [nonroot](./nonroot/) and [native](./native/) bases |
61+
| v6.0.x | 1.13+ | Kafka [2.4.0](https://github.com/Yolean/kubernetes-kafka/pull/297) + [standard storage class](https://github.com/Yolean/kubernetes-kafka/pull/294) |
6162
| v6.0.0 | 1.11+ | Kafka 2.2.0 + `apply -k` (kubectl 1.14+) + [#270](https://github.com/Yolean/kubernetes-kafka/pull/270) |
6263
| v5.1.0 | 1.11+ | Kafka 2.1.1 |
6364
| v5.0.3 | 1.11+ | Zookeeper fix [#227](https://github.com/Yolean/kubernetes-kafka/pull/227) + [maxClientCnxns=1](https://github.com/Yolean/kubernetes-kafka/pull/230#issuecomment-445953857) |

cruise-control/topic-create.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ spec:
88
spec:
99
containers:
1010
- name: topic-create
11-
image: solsson/kafka:native-cli@sha256:7a4cc4ef875aea50b8d4dbb525cbac0ef3a5c6e611fcafc2c415ca432ebe5601
11+
image: solsson/kafka:native-cli@sha256:fbf29c59182fb87921c5199783d2d5796856ecbfe34a9c03eca658b3cf50f3c4
1212
command:
1313
- ./bin/kafka-topics.sh
1414
- --zookeeper

events-kube/topic-create.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ spec:
88
spec:
99
containers:
1010
- name: topic-create
11-
image: solsson/kafka:native-cli@sha256:7a4cc4ef875aea50b8d4dbb525cbac0ef3a5c6e611fcafc2c415ca432ebe5601
11+
image: solsson/kafka:native-cli@sha256:fbf29c59182fb87921c5199783d2d5796856ecbfe34a9c03eca658b3cf50f3c4
1212
command:
1313
- ./bin/kafka-topics.sh
1414
- --zookeeper

kafka/10broker-config.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ data:
4141
}
4242
printf '%s\n' "${SEDS[@]}" | sed -f - /etc/kafka-configmap/server.properties > /etc/kafka/server.properties.tmp
4343
[ $? -eq 0 ] && mv /etc/kafka/server.properties.tmp /etc/kafka/server.properties
44+
ln -s /etc/kafka/server.properties /etc/kafka/server.properties.$POD_NAME
4445
4546
server.properties: |-
4647
############################# Log Basics #############################
@@ -166,7 +167,7 @@ data:
166167
zookeeper.connect=zookeeper:2181
167168
168169
# Timeout in ms for connecting to zookeeper
169-
#zookeeper.connection.timeout.ms=6000
170+
#zookeeper.connection.timeout.ms=18000
170171
171172
172173
############################# Group Coordinator Settings #############################

kafka/20dns.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
apiVersion: v1
44
kind: Service
55
metadata:
6-
name: broker
6+
name: kafka
77
namespace: kafka
8+
annotations:
9+
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
810
spec:
11+
publishNotReadyAddresses: true
912
ports:
1013
- port: 9092
1114
# [podname].broker.kafka.svc.cluster.local

kafka/50kafka.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ spec:
77
selector:
88
matchLabels:
99
app: kafka
10-
serviceName: "broker"
10+
serviceName: "kafka"
1111
replicas: 3
1212
updateStrategy:
1313
type: RollingUpdate
@@ -47,6 +47,14 @@ spec:
4747
- name: broker
4848
image: solsson/kafka:2.4.1@sha256:79761e15919b4fe9857ec00313c9df799918ad0340b684c0163ab7035907bb5a
4949
env:
50+
- name: POD_NAME
51+
valueFrom:
52+
fieldRef:
53+
fieldPath: metadata.name
54+
- name: POD_NAMESPACE
55+
valueFrom:
56+
fieldRef:
57+
fieldPath: metadata.namespace
5058
- name: CLASSPATH
5159
value: /opt/kafka/libs/extensions/*
5260
- name: KAFKA_LOG4J_OPTS
@@ -62,7 +70,7 @@ spec:
6270
containerPort: 5555
6371
command:
6472
- ./bin/kafka-server-start.sh
65-
- /etc/kafka/server.properties
73+
- /etc/kafka/server.properties.$(POD_NAME)
6674
lifecycle:
6775
preStop:
6876
exec:

kafka/test/kafkacat.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ spec:
7272
spec:
7373
containers:
7474
- name: topic-create
75-
image: solsson/kafka:native-cli@sha256:7a4cc4ef875aea50b8d4dbb525cbac0ef3a5c6e611fcafc2c415ca432ebe5601
75+
image: solsson/kafka:native-cli@sha256:fbf29c59182fb87921c5199783d2d5796856ecbfe34a9c03eca658b3cf50f3c4
7676
command:
7777
- ./bin/kafka-topics.sh
7878
- --zookeeper

kafka/test/produce-consume.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ spec:
5555
spec:
5656
containers:
5757
- name: topic-create
58-
image: solsson/kafka:native-cli@sha256:7a4cc4ef875aea50b8d4dbb525cbac0ef3a5c6e611fcafc2c415ca432ebe5601
58+
image: solsson/kafka:native-cli@sha256:fbf29c59182fb87921c5199783d2d5796856ecbfe34a9c03eca658b3cf50f3c4
5959
command:
6060
- ./bin/kafka-topics.sh
6161
- --zookeeper

native/distroless.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# The more specific removes are to make sure that there was a shell that we're removing
2+
- op: remove
3+
path: /spec/template/spec/containers/0/readinessProbe/exec
4+
- op: remove
5+
path: /spec/template/spec/containers/0/readinessProbe
6+
- op: remove
7+
path: /spec/template/spec/containers/0/lifecycle/preStop/exec
8+
- op: remove
9+
path: /spec/template/spec/containers/0/lifecycle/preStop

native/kustomization.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
bases:
2+
- ../nonroot
3+
patchesStrategicMerge:
4+
- native-image-zookeeper.yaml
5+
patchesJson6902:
6+
- target:
7+
group: apps
8+
version: v1
9+
kind: StatefulSet
10+
name: pzoo
11+
path: distroless.yaml
12+
- target:
13+
group: apps
14+
version: v1
15+
kind: StatefulSet
16+
name: zoo
17+
path: distroless.yaml

native/native-image-zookeeper.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: apps/v1
2+
kind: StatefulSet
3+
metadata:
4+
name: pzoo
5+
spec:
6+
template:
7+
spec:
8+
containers:
9+
- name: zookeeper
10+
image: solsson/kafka:native-zookeeper-server-start@sha256:ba3a0632240b8906a3b5bb6441e98ad9d9de73cb716b156ca68f1b435c819e8b
11+
resources:
12+
requests:
13+
cpu: 10m
14+
memory: 25Mi
15+
---
16+
apiVersion: apps/v1
17+
kind: StatefulSet
18+
metadata:
19+
name: zoo
20+
spec:
21+
template:
22+
spec:
23+
containers:
24+
- name: zookeeper
25+
image: solsson/kafka:native-zookeeper-server-start@sha256:ba3a0632240b8906a3b5bb6441e98ad9d9de73cb716b156ca68f1b435c819e8b
26+
resources:
27+
requests:
28+
cpu: 10m
29+
memory: 25Mi

nonroot/entrypoint-from-image.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- op: remove
2+
path: /spec/template/spec/containers/0/command

nonroot/kustomization.yaml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ bases:
22
- ../rbac-namespace-default
33
- ../kafka
44
- ../zookeeper
5+
patchesStrategicMerge:
6+
- nonroot-image-kafka.yaml
7+
- nonroot-image-zookeeper.yaml
58
patchesJson6902:
69
- target:
710
group: apps
@@ -21,7 +24,21 @@ patchesJson6902:
2124
kind: StatefulSet
2225
name: zoo
2326
path: fsgroup-65534.yaml
24-
# https://github.com/kubernetes-sigs/kustomize/issues/915#issuecomment-477808963
25-
patchesStrategicMerge:
26-
- nonroot-image-kafka.yaml
27-
- nonroot-image-zookeeper.yaml
27+
- target:
28+
group: apps
29+
version: v1
30+
kind: StatefulSet
31+
name: kafka
32+
path: entrypoint-from-image.yaml
33+
- target:
34+
group: apps
35+
version: v1
36+
kind: StatefulSet
37+
name: pzoo
38+
path: entrypoint-from-image.yaml
39+
- target:
40+
group: apps
41+
version: v1
42+
kind: StatefulSet
43+
name: zoo
44+
path: entrypoint-from-image.yaml

nonroot/nonroot-image-kafka.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ metadata:
55
spec:
66
template:
77
spec:
8+
initContainers:
9+
- name: init-config
10+
image: solsson/kafka:initutils-nonroot@sha256:87f6bb39fd47a6f382018a2dc55a484d1b71eee48a58019c7e65a9bc53e8dca2
811
containers:
912
- name: broker
10-
image: solsson/kafka:2.4.1-nonroot@sha256:ddfdd23081c075b86132f3e5d8e15389c78c4334dbb22166d9ad1d57f362007f
13+
image: solsson/kafka:2.5.0-kafka-server-start@sha256:c6d43d1240c358d9ab8bb60de61a0b9578f04fd727ee4016f7706800998e5351
14+
args:
15+
- /etc/kafka/server.properties.$(POD_NAME)

nonroot/nonroot-image-zookeeper.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@ metadata:
55
spec:
66
template:
77
spec:
8+
initContainers:
9+
- name: init-config
10+
image: solsson/kafka:initutils-nonroot@sha256:87f6bb39fd47a6f382018a2dc55a484d1b71eee48a58019c7e65a9bc53e8dca2
811
containers:
912
- name: zookeeper
10-
image: solsson/kafka:2.4.1-nonroot@sha256:ddfdd23081c075b86132f3e5d8e15389c78c4334dbb22166d9ad1d57f362007f
13+
image: solsson/kafka:zookeeper-server-start@sha256:c34a9928fcc5ac15b2243ee2994cf09f5a3608b6090de378f39f89ad12320276
14+
args:
15+
- /etc/kafka/zookeeper.properties.scale-$(REPLICAS).$(POD_NAME)
1116
---
1217
apiVersion: apps/v1
1318
kind: StatefulSet
@@ -16,6 +21,11 @@ metadata:
1621
spec:
1722
template:
1823
spec:
24+
initContainers:
25+
- name: init-config
26+
image: solsson/kafka:initutils-nonroot@sha256:87f6bb39fd47a6f382018a2dc55a484d1b71eee48a58019c7e65a9bc53e8dca2
1927
containers:
2028
- name: zookeeper
21-
image: solsson/kafka:2.4.1-nonroot@sha256:ddfdd23081c075b86132f3e5d8e15389c78c4334dbb22166d9ad1d57f362007f
29+
image: solsson/kafka:zookeeper-server-start@sha256:c34a9928fcc5ac15b2243ee2994cf09f5a3608b6090de378f39f89ad12320276
30+
args:
31+
- /etc/kafka/zookeeper.properties.scale-$(REPLICAS).$(POD_NAME)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[
2-
{"op": "add", "path": "/spec/template/spec/containers/0/command/2", "value": "--override"},
3-
{"op": "add", "path": "/spec/template/spec/containers/0/command/3", "value": "advertised.listeners=PLAINTEXT://:9092,OUTSIDE://localhost:9094"}
2+
{"op": "add", "path": "/spec/template/spec/containers/0/args/1", "value": "--override"},
3+
{"op": "add", "path": "/spec/template/spec/containers/0/args/2", "value": "advertised.listeners=PLAINTEXT://:9092,OUTSIDE://localhost:9094"}
44
]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[
2-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
3-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "num.partitions=1"}
2+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
3+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "num.partitions=1"}
44
]
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[
2-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
3-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "default.replication.factor=1"},
4-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
5-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "min.insync.replicas=1"},
6-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
7-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "offsets.topic.replication.factor=1"},
8-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
9-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "offsets.topic.num.partitions=1"}
2+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
3+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "default.replication.factor=1"},
4+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
5+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "min.insync.replicas=1"},
6+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
7+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "offsets.topic.replication.factor=1"},
8+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
9+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "offsets.topic.num.partitions=1"}
1010
]
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
[
2-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
3-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "default.replication.factor=1"},
4-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
5-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "min.insync.replicas=1"},
6-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
7-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "offsets.topic.replication.factor=1"},
8-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
9-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "offsets.topic.num.partitions=1"}
2+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
3+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "zookeeper.connect=zoo-0.zoo.$(POD_NAMESPACE).svc.cluster.local:2181" },
4+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
5+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "default.replication.factor=1"},
6+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
7+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "min.insync.replicas=1"},
8+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
9+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "offsets.topic.replication.factor=1"},
10+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
11+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "offsets.topic.num.partitions=1"}
1012
]

variants/scale-1/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
bases:
2-
- ../../nonroot
2+
- ../../native
33
patchesStrategicMerge:
44
- kafka.yaml
55
- zookeeper.yaml

variants/scale-1/zookeeper.yaml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,13 @@ spec:
1919
env:
2020
- name: PZOO_REPLICAS
2121
value: '1'
22-
- name: ZOO_REPLICAS
23-
value: '0'
22+
- name: REPLICAS
23+
value: '1'
24+
containers:
25+
- name: zookeeper
26+
env:
27+
- name: REPLICAS
28+
value: '1'
2429
---
2530
apiVersion: apps/v1
2631
kind: StatefulSet
@@ -37,7 +42,12 @@ spec:
3742
# There's no validation on these numbers adding up to a coherent zk config, so watch out
3843
- name: PZOO_REPLICAS
3944
value: '1'
40-
- name: ZOO_REPLICAS
41-
value: '0'
45+
- name: REPLICAS
46+
value: '1'
4247
- name: ID_OFFSET
4348
value: '2'
49+
containers:
50+
- name: zookeeper
51+
env:
52+
- name: REPLICAS
53+
value: '1'
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[
2-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
3-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "default.replication.factor=2"},
4-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
5-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "min.insync.replicas=2"},
6-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
7-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "offsets.topic.replication.factor=2"},
8-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"},
9-
{"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "offsets.topic.num.partitions=2"}
2+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
3+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "default.replication.factor=2"},
4+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
5+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "min.insync.replicas=2"},
6+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
7+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "offsets.topic.replication.factor=2"},
8+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
9+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "offsets.topic.num.partitions=2"}
1010
]

variants/scale-2/zookeeper.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ spec:
2222
# There's no validation on these numbers adding up to a coherent zk config, so watch out
2323
- name: PZOO_REPLICAS
2424
value: '0'
25-
- name: ZOO_REPLICAS
25+
- name: REPLICAS
2626
value: '2'
2727
- name: ID_OFFSET
2828
value: '1'
29+
containers:
30+
- name: zookeeper
31+
env:
32+
- name: REPLICAS
33+
value: '2'
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[
2+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--override"},
3+
{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":
4+
"zookeeper.connect=zoo-0.zoo.$(POD_NAMESPACE).svc.cluster.local:2181,zoo-1.zoo.$(POD_NAMESPACE).svc.cluster.local:2181,zoo-2.zoo.$(POD_NAMESPACE).svc.cluster.local:2181"
5+
}
6+
]

variants/scale-3-3/kustomization.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
bases:
2+
- ../scale-3-5
3+
patchesStrategicMerge:
4+
- ./only-zoo-3.yaml
5+
patchesJson6902:
6+
- target:
7+
group: apps
8+
version: v1
9+
kind: StatefulSet
10+
name: kafka
11+
namespace: kafka
12+
path: kafka-zookeeper-connect-only-zoo.json

0 commit comments

Comments
 (0)