diff --git a/README.md b/README.md index ce2009dc..f080d8c8 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ and though they still seem to work you can get around that with a v1.14+ kubectl ### Maintaining your own kustomization -`kubectl apply -k` takes a siungle overlay, meaning that you can't compose different overlays from this repo. +`kubectl apply -k` takes a single overlay, meaning that you can't compose different overlays from this repo. You'll probably want to maintain your own variant. One option is to keep kubernets-kafka as a git submodule and edit the relative path from an example variant. diff --git a/variants/scale-1-ephemeral/kafka-scale1-overrides.json b/variants/scale-1-ephemeral/kafka-scale1-overrides.json new file mode 100644 index 00000000..14e41745 --- /dev/null +++ b/variants/scale-1-ephemeral/kafka-scale1-overrides.json @@ -0,0 +1,6 @@ +[ + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"}, + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "default.replication.factor=1"}, + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"}, + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "min.insync.replicas=1"} +] \ No newline at end of file diff --git a/variants/scale-1-ephemeral/kafka.yaml b/variants/scale-1-ephemeral/kafka.yaml new file mode 100644 index 00000000..4a6ac3e5 --- /dev/null +++ b/variants/scale-1-ephemeral/kafka.yaml @@ -0,0 +1,13 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: kafka + namespace: kafka +spec: + replicas: 1 + template: + spec: + volumes: + - name: data + emptyDir: {} + volumeClaimTemplates: [] diff --git a/variants/scale-1-ephemeral/kustomization.yaml b/variants/scale-1-ephemeral/kustomization.yaml new file mode 100644 index 00000000..9ecd5b7c --- /dev/null +++ b/variants/scale-1-ephemeral/kustomization.yaml @@ -0,0 +1,13 @@ +bases: +- ../../kafka +- ../../zookeeper +patchesStrategicMerge: +- kafka.yaml +- zookeeper.yaml +patchesJson6902: +- target: + group: apps + version: v1 + kind: StatefulSet + name: kafka + path: kafka-scale1-overrides.json diff --git a/variants/scale-1-ephemeral/zookeeper.yaml b/variants/scale-1-ephemeral/zookeeper.yaml new file mode 100644 index 00000000..e78334f5 --- /dev/null +++ b/variants/scale-1-ephemeral/zookeeper.yaml @@ -0,0 +1,47 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: pzoo + namespace: kafka +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: pzoo + namespace: kafka +spec: + replicas: 1 + template: + spec: + initContainers: + - name: init-config + env: + - name: PZOO_REPLICAS + value: '1' + - name: ZOO_REPLICAS + value: '0' + volumes: + - name: data + emptyDir: {} + volumeClaimTemplates: [] +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: zoo + namespace: kafka +spec: + replicas: 0 + template: + spec: + initContainers: + - name: init-config + env: + # There's no validation on these numbers adding up to a coherent zk config, so watch out + - name: PZOO_REPLICAS + value: '1' + - name: ZOO_REPLICAS + value: '0' + - name: ID_OFFSET + value: '2' diff --git a/variants/scale-1/kafka-scale1-overrides.json b/variants/scale-1/kafka-scale1-overrides.json new file mode 100644 index 00000000..14e41745 --- /dev/null +++ b/variants/scale-1/kafka-scale1-overrides.json @@ -0,0 +1,6 @@ +[ + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"}, + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "default.replication.factor=1"}, + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "--override"}, + {"op": "add", "path": "/spec/template/spec/containers/0/command/-", "value": "min.insync.replicas=1"} +] \ No newline at end of file diff --git a/variants/scale-1/kustomization.yaml b/variants/scale-1/kustomization.yaml index 2cc065d5..9ecd5b7c 100644 --- a/variants/scale-1/kustomization.yaml +++ b/variants/scale-1/kustomization.yaml @@ -4,3 +4,10 @@ bases: patchesStrategicMerge: - kafka.yaml - zookeeper.yaml +patchesJson6902: +- target: + group: apps + version: v1 + kind: StatefulSet + name: kafka + path: kafka-scale1-overrides.json