Skip to content
This repository has been archived by the owner on Mar 17, 2024. It is now read-only.

Use ConfigMap to provide app and logging config #47

Merged
merged 1 commit into from
Aug 6, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ Update values.yaml docker repository to docker.xyzcorp.com/foobar/kafka-lag-expo
Deploy the local chart to K8s:

```
helm install https://github.com/lightbend/kafka-lag-exporter/releases/download/v0.4.3/kafka-lag-exporter-0.4.3.tgz \
helm install ./charts/kafka-lag-exporter \
--name kafka-lag-exporter \
--namespace kafka-lag-exporter \
--set watchers.strimzi=true \
Expand Down
4 changes: 3 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ lazy val kafkaLagExporter =
Cmd("RUN", "chgrp -R 0 /opt && chmod -R g=u /opt"),
Cmd("WORKDIR", "/opt/docker"),
Cmd("USER", "1001"),
ExecCmd("CMD", "/opt/docker/bin/kafka-lag-exporter"),
ExecCmd("CMD", "/opt/docker/bin/kafka-lag-exporter",
"-Dconfig.file=/opt/docker/conf/application.conf",
"-Dlogback.configurationFile=/opt/docker/conf/logback.xml"),
),
updateHelmChart := {
import scala.sys.process._
Expand Down
56 changes: 56 additions & 0 deletions charts/kafka-lag-exporter/templates/030-ConfigMap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "kafka-lag-exporter.fullname" . }}-configmap
labels:
app.kubernetes.io/name: {{ include "kafka-lag-exporter.name" . }}
helm.sh/chart: {{ include "kafka-lag-exporter.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
application.conf: |
kafka-lag-exporter {
port = {{ .Values.service.port }}
poll-interval = {{ .Values.pollIntervalSeconds }} seconds
lookup-table-size = {{ .Values.lookupTableSize }}
client-group-id = {{ .Values.clientGroupId }}
kafka-client-timeout = {{ .Values.kafkaClientTimeoutSeconds }} seconds
clusters = [
{{- range $cluster := .Values.clusters }}
{
name = {{ $cluster.name }}
bootstrap-brokers = {{ $cluster.bootstrapBrokers }}
config = [
# {{- range $property := $cluster }}
# $property.key = $property.value
# {{- end }}
]
}
{{- end }}
]
watchers = {
strimzi = "{{ .Values.watchers.strimzi }}"
}
}

akka {
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = "{{ .Values.akkaLogLevel }}"
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
}
logback.xml: |
<configuration>
<variable name="ROOT_LOG_LEVEL" value="{{ .Values.rootLogLevel }}" />
<variable name="KAFKA_LAG_EXPORTER_LOG_LEVEL" value="{{ .Values.kafkaLagExporterLogLevel }}" />
<variable name="KAFKA_LAG_EXPORTER_KAFKA_LOG_LEVEL" value="{{ .Values.kafkaLogLevel }}" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{ISO8601} %-5level %logger{36} %X{akkaSource} - %msg %ex%n</pattern>
</encoder>
</appender>
<logger name="org.apache.kafka" level="${KAFKA_LAG_EXPORTER_KAFKA_LOG_LEVEL}"/>
<logger name="com.lightbend.kafkalagexporter" level="${KAFKA_LAG_EXPORTER_LOG_LEVEL}"/>
<root level="${ROOT_LOG_LEVEL}">
<appender-ref ref="STDOUT" />
</root>
</configuration>
89 changes: 0 additions & 89 deletions charts/kafka-lag-exporter/templates/030-Deployment.yaml

This file was deleted.

60 changes: 60 additions & 0 deletions charts/kafka-lag-exporter/templates/040-Deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: {{ include "kafka-lag-exporter.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "kafka-lag-exporter.name" . }}
helm.sh/chart: {{ include "kafka-lag-exporter.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: {{ include "kafka-lag-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "kafka-lag-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ include "kafka-lag-exporter.fullname" . }}-serviceaccount
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env: []
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
volumeMounts:
- name: config-volume
mountPath: /opt/docker/conf/
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
volumes:
- name: config-volume
configMap:
name: {{ include "kafka-lag-exporter.fullname" . }}-configmap
2 changes: 1 addition & 1 deletion charts/kafka-lag-exporter/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ Get the application URL by running these commands:
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward service/{{ include "kafka-lag-exporter.name" . }}-service 8080:{{ .Values.service.port }} --namespace {{ .Release.Namespace }}
kubectl port-forward service/{{ include "kafka-lag-exporter.name" . }}-service 8000:{{ .Values.service.port }} --namespace {{ .Release.Namespace }}
{{- end }}
19 changes: 11 additions & 8 deletions charts/kafka-lag-exporter/values.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Statically define 1 or more cluster
## Statically define one or more cluster
clusters: {}
## Ex)
# clusters:
#clusters:
# - name: "default"
# bootstrapBrokers: "my-cluster-kafka-bootstrap:9092"
# # optional values for TLS/SASL enabled clusters
Expand All @@ -15,12 +15,6 @@ pollIntervalSeconds: 30
lookupTableSize: 60
## The Consumer Group `group.id` to use when connecting to Kafka
clientGroupId: "kafkalagexporter"
## The log level of the ROOT logger
rootLogLevel: INFO
## The log level of Kafka Lag Exporter
kafkaLagExporterLogLevel: INFO
## The log level of `org.apache.kafka` logger
kafkaLogLevel: INFO
## The timeout when communicating with Kafka clusters
kafkaClientTimeoutSeconds: 10
## Watchers will automatically discover and forget Kafka clusters
Expand All @@ -29,6 +23,15 @@ watchers:
## configure the Kafka Lag Exporter appropriately.
strimzi: false

## The log level of the ROOT logger
rootLogLevel: INFO
## The log level of Kafka Lag Exporter
kafkaLagExporterLogLevel: INFO
## The log level of `org.apache.kafka` logger
kafkaLogLevel: INFO
## The log level of Akka
akkaLogLevel: DEBUG

## You probably won't need to change anything below this line.
image:
repository: lightbend/kafka-lag-exporter
Expand Down