From 11e1717221b2fa8a61232a4099f6dcfd5626b944 Mon Sep 17 00:00:00 2001 From: Jinoy Parekh Date: Thu, 19 Nov 2020 22:45:53 -0600 Subject: [PATCH] Added scripts and updatd Dfile --- Dockerfile | 18 +++-- scripts/application.yml | 172 ++++++++++++++++++++++++++++++++++++++++ scripts/entrypoint.sh | 9 +++ 3 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 scripts/application.yml create mode 100644 scripts/entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 33897e1..66df061 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,17 +18,25 @@ LABEL name="kafka dashboard" \ USER 0 -RUN dnf upgrade -y && \ - dnf clean all && \ - rm -rf /var/cache/dnf - WORKDIR /app COPY --from=base /app /app +COPY scripts/application.yml /app/application.yml + +COPY scripts/entrypoint.sh /app/entrypoint.sh + ENV MICRONAUT_CONFIG_FILES=/app/application.yml -ENTRYPOINT ["docker-entrypoint.sh"] +RUN useradd -u 1001 akhq + +RUN chown -R akhq /app + +RUN dnf upgrade -y && \ + dnf clean all && \ + rm -rf /var/cache/dnf + +ENTRYPOINT ["entrypoint.sh"] CMD ["./akhq"] diff --git a/scripts/application.yml b/scripts/application.yml new file mode 100644 index 0000000..cf0394d --- /dev/null +++ b/scripts/application.yml @@ -0,0 +1,172 @@ +micronaut: + application: + name: akhq + io: + watch: + paths: src/main + restart: false # enabled dev server with env vars MICRONAUT_IO_WATCH_RESTART=true + server: + thread-selection: AUTO + router: + static-resources: + react: + paths: classpath:ui + mapping: "/ui/**" + static: + paths: classpath:static + mapping: "/static/**" + swagger: + paths: classpath:META-INF/swagger + mapping: "/swagger/**" + security: + enabled: false + authentication: cookie + endpoints: + login: + path: "/login" + logout: + path: "/logout" + get-allowed: true + token: + jwt: + enabled: true + cookie: + enabled: true + cookie-same-site: strict + signatures: + secret: + generator: + secret: "pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!pleasechangeme!" + + redirect: + login-success: "${micronaut.server.context-path:}/ui" + forbidden: + url: "${micronaut.server.context-path:}/ui/login/forbidden" + unauthorized: + url: "${micronaut.server.context-path:}/ui/login/unauthorized" + login-failure: "${micronaut.server.context-path:}/ui/login/failed" + logout: "${micronaut.server.context-path:}/ui" + intercept-url-map: + - pattern: "${micronaut.server.context-path:}/ui/**" + access: "isAnonymous()" + - pattern: "${micronaut.server.context-path:}/static/**" + access: "isAnonymous()" + - pattern: "${micronaut.server.context-path:}/swagger/**" + access: "isAnonymous()" + oauth2: + login-uri: "${micronaut.server.context-path:}/oauth/login{/provider}" + callback-uri: "${micronaut.server.context-path:}/oauth/callback{/provider}" + caches: + kafka-wrapper: + record-stats: true + expire-after-write: 0s + +jackson: + serialization: + writeDatesAsTimestamps: false + +endpoints: + health: + enabled: true + sensitive: false + details-visible: anonymous + info: + enabled: true + sensitive: false + metrics: + enabled: true + sensitive: false + export: + prometheus: + enabled: true + step: PT1M + descriptions: true + prometheus: + enabled: true + sensitive: false + caches: + enabled: true + sensitive: false + +akhq: + server: + access-log: + enabled: true + name: org.akhq.log.access + format: "[Date: {}] [Duration: {} ms] [Url: {} {}] [Status: {}] [Ip: {}] [User: {}]" + filters: + - "((?!/health).)*" + + clients-defaults: + consumer: + properties: + max.poll.records: 50 + isolation.level: read_committed + # group.id: Akhq + enable.auto.commit: "false" + default.api.timeout.ms: 15000 + + pagination: + page-size: 25 + threads: 16 + + topic: + default-view: HIDE_INTERNAL + replication: 1 + retention: 86400000 + partition: 1 + internal-regexps: + - "^_.*$" + - "^.*_schemas$" + - "^.*connect-config$" + - "^.*connect-offsets$1" + - "^.*connect-status$" + stream-regexps: + - "^.*-changelog$" + - "^.*-repartition$" + - "^.*-rekey$" + + topic-data: + sort: OLDEST + size: 50 + poll-timeout: 1000 + + security: + default-group: admin + groups: + - name: admin + roles: + - topic/read + - topic/insert + - topic/delete + - topic/config/update + - node/read + - node/config/update + - topic/data/read + - topic/data/insert + - topic/data/delete + - group/read + - group/delete + - group/offsets/update + - registry/read + - registry/insert + - registry/update + - registry/delete + - registry/version/delete + - acls/read + - connect/read + - connect/insert + - connect/update + - connect/delete + - connect/state/update + - name: reader + roles: + - topic/read + - node/read + - topic/data/read + - group/read + - registry/read + - acls/read + - connect/read + - name: no-roles + roles: [] diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh new file mode 100644 index 0000000..52228a6 --- /dev/null +++ b/scripts/entrypoint.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env sh + +set -e + +if [ "${AKHQ_CONFIGURATION}" ]; then + echo "${AKHQ_CONFIGURATION}" > /app/application.yml +fi + +exec "$@" -- GitLab