hi devs:
Currently, the streampark platform provides multiple configuration
files for user configuration, such as: application.yml,
application-pgsql.yml, application-mysql.yml, kerberos.yml... , We can
improve these configuration files. Many config files are internal
system configurations, for example, in application.yml, a large number
of configurations are internal platform configurations, such as
jackson config for integration Spring Boot, swagger-ui config. the
'allow-circular-references' parameter for Spring... These do not need
user configuration and should not be exposed to users.
application.yml:
```yaml
server:
port: 10000
undertow:
buffer-size: 1024
direct-buffers: true
threads:
io: 4
worker: 20
logging:
level:
root: info
knife4j:
enable: true
basic:
# basic authentication, used to access swagger-ui and doc
enable: false
username: admin
password: streampark
springdoc:
api-docs:
enabled: true
swagger-ui:
path: /swagger-ui.html
packages-to-scan: org.apache.streampark.console
spring:
profiles.active: h2 #[h2,pgsql,mysql]
application.name: StreamPark
devtools.restart.enabled: false
mvc.pathmatch.matching-strategy: ant_path_matcher
servlet:
multipart:
enabled: true
max-file-size: 500MB
max-request-size: 500MB
aop.proxy-target-class: true
messages.encoding: utf-8
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
deserialization:
fail-on-unknown-properties: false
main:
allow-circular-references: true
banner-mode: off
mvc:
converters:
preferred-json-mapper: jackson
management:
endpoints:
web:
exposure:
include: [ 'health', 'httptrace', 'metrics' ]
endpoint:
health:
enabled: true
show-details: always
probes:
enabled: true
health:
ldap:
enabled: false
streampark:
proxy:
# knox process address
https://cdpsit02.example.cn:8443/gateway/cdp-proxy/yarn
yarn-url:
# lark alert proxy,default https://open.feishu.cn
lark-url:
yarn:
# default simple, or kerberos
http-auth: simple
# HADOOP_USER_NAME
hadoop-user-name: hdfs
# local workspace, used to store source code and build dir etc.
workspace:
local: /opt/streampark_workspace
remote: hdfs:///streampark # support hdfs:///streampark/ 、
/streampark 、hdfs://host:ip/streampark/
# remote docker register namespace for streampark
docker:
# instantiating DockerHttpClient
http-client:
max-connections: 10000
connection-timeout-sec: 10000
response-timeout-sec: 12000
docker-host: ""
# flink-k8s tracking configuration
flink-k8s:
tracking:
silent-state-keep-sec: 10
polling-task-timeout-sec:
job-status: 120
cluster-metric: 120
polling-interval-sec:
job-status: 2
cluster-metric: 3
# If you need to specify an ingress controller, you can use this.
ingress:
class: nginx
# packer garbage resources collection configuration
packer-gc:
# maximum retention time for temporary build resources
max-resource-expired-hours: 120
# gc task running interval hours
exec-cron: 0 0 0/6 * * ?
shiro:
# token timeout, unit second
jwtTimeOut: 86400
# backend authentication-free resources url
anonUrl: >
ldap:
# Is ldap enabled? If so, please modify the urls
enable: false
## AD server IP, default port 389
urls: ldap://99.99.99.99:389
## Login Account
base-dn: dc=streampark,dc=com
username: cn=Manager,dc=streampark,dc=com
password: streampark
user:
identity-attribute: uid
email-attribute: mail
```
So, I propose that we improve these configurations by providing users
with only one configuration file(only one). The configurations in this
file should be completely user-focused, clear, and core
configurations.
e.g:
```yaml
# logging level
logging.level.root: info
# server port
server.port: 10000
# The user's login session has a validity period. If it exceeds this
time, the user will be automatically logout
# unit: s|m|h|d, s: second, m:minute, h:hour, d: day
server.session.ttl: 2h # unit[s|m|h|d], e.g: 24h, 2d....
# see:
https://github.com/undertow-io/undertow/blob/master/core/src/main/java/io/undertow/Undertow.java
server.undertow.direct-buffers: true
server.undertow.buffer-size: 1024
server.undertow.threads.io: 16
server.undertow.threads.worker: 256
# system database, default h2, mysql|pgsql|h2
datasource.dialect: h2 # h2, pgsql
#-------if datasource.dialect is mysql or pgsql, it is necessary to set-------
datasource.username:
datasource.password:
# mysql jdbc url example:
# datasource.url:
jdbc:mysql://localhost:3306/streampark?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
# postgresql jdbc url example:
# datasource.url:
jdbc:postgresql://localhost:5432/streampark?stringtype=unspecified
datasource.url:
#---------------------------------------------------------------------------------
# Directory for storing locally built project
streampark.workspace.local: /tmp/streampark
# The root hdfs path of the jars, Same as yarn.provided.lib.dirs for
flink on yarn-application
# and Same as --jars for spark on yarn
streampark.workspace.remote: hdfs:///streampark/
# hadoop yarn proxy path, e.g: knox process address
https://streampark.com:8443/proxy/yarn
streampark.proxy.yarn-url:
# lark proxy address, default https://open.feishu.cn
streampark.proxy.lark-url:
# flink on yarn or spark on yarn, monitoring job status from yarn, it
is necessary to set hadoop.http.authentication.type
streampark.yarn.http-auth: simple # default simple, or kerberos
# flink on yarn or spark on yarn, it is necessary to set
streampark.hadoop-user-name: hdfs
# flink on k8s ingress setting, If an ingress controller is specified
in the configuration, the ingress class
# kubernetes.io/ingress.class must be specified when creating the
ingress, since there are often
# multiple ingress controllers in a production environment.
streampark.flink-k8s.ingress.class: nginx
# sign streampark with ldap.
ldap.enable: false # ldap enabled
ldap.urls: ldap://99.99.99.99:389 #AD server IP, default port 389
ldap.base-dn: dc=streampark,dc=com # Login Account
ldap.username: cn=Manager,dc=streampark,dc=com
ldap.password: streampark
ldap.user.identity-attribute: uid
ldap.user.email-attribute: mail
# flink on yarn or spark on yarn, when the hadoop cluster enable
kerberos authentication,
# it is necessary to set up Kerberos authentication related parameters.
security.kerberos.login.enable: false
security.kerberos.login.debug: false
# kerberos principal path
security.kerberos.login.principal:
security.kerberos.login.krb5:
security.kerberos.login.keytab:
security.kerberos.ttl: 2h # unit [s|m|h|d]
```
this is issue: https://github.com/apache/incubator-streampark/issues/3641
What's your opinion on this? Welcome to discuss
Best,
Huajie Wang