description: app.cfg 配置文件解析>

配置文件解析

本文主要介绍app.cfg这个文件的配置及一些参数的解释

kplcloud启动时必须传app.cfg文件,所有的参数都通过该文件进行控制,若您是在kubernetes进行部署可以考虑通过ConfigMap的方式挂载进容器里。

[server] 应用配置

字段 备注 其他
http_static 静态文件路径 ./static/
http_proxy 代理服务地址 如果您的环境是隔离的,又需要访问外网的话就填写
logs_path 日志文件目录 如果填写会输出日志文件如: /var/log/kplcloud.log
upload_path 上传文件的路径 发公告时上传资源的路径,如果需要持久化,请配置pvc
domain 网站域名 https://kplcloud.nsini.com
login_type 登陆的类型 1. ldap 需要在下面的 [ldap] 填写相关的ldap地址及配置信息 2. email 邮箱登陆
consul_kv 是否启用consul作为配置中心,并可在该平台进行kv的操作 false,如果为true 可在该平台操作Consul的KV
app_key 用作加密解密使用的key 初始化后就不修改
session_timeout 登陆超时的时间 7200 单位秒
kibana_url kibana 地址
transfer_url tracing 地址
grafana_url grafana地址
heapster_url heapster地址 k8s的cpu、内存等监控数据从这里拿
prometheus_url prometheus地址 其他监控数据获取源 可以是内部地址也可以是外部地址
docker_repo 您的镜像仓库地址 例如: hub.docker.com
service_mesh 是否启用servicemesh功能 目前兼容istio
domain_suffix 生成的ingress的后缀 例如: .kpaas.nsini.com
client_id OAuth App Client ID 平台的OAuth App所生成的Client ID
client_secret OAuth App Client Secret 平台的OAuth App所生成的Client Secret 如有不清楚的可查看 配置Github授权登陆
auth_login 授权登陆 如果有填写那只能进行授权登陆 目前暂时支持Github
default_namespace 授权登陆默认可访问的空间 Default: app 目前只支持一个
default_role_id 授权登陆默认所属的我角色 Default: 4 目前只支持一个
debug
log_level 输出的日志级别 支持五个级别 all,error,warn,info,debug

[cors] 跨域设置

字段 备注 其他
allow 是否允许跨域请求 false
origin 允许跨域的地址 不能直接写 “*“
methods 允许跨域的方法
headers 允许跨域的header头信息

[mysql] mysql配置

字段 备注 其他
mysql_host 数据库地址 mysql
mysql_port 数据库端口 3306
mysql_user 数据库用户名
mysql_password 数据库密码
mysql_database 数据库名 kplcloud
mysql_debug 是否开启debug信息 false

[redis] redis配置

字段 备注 其他
redis_drive redis驱动 1. cluster: 若为该值, 则访问redis集群; 2. single: 若为该值, 则访问单点redis服务
redis_hosts redis地址 redis IP 地址, 若redis_drive为cluster,则redis_hosts需要多个IP用”;”隔开例如 redis-0:6379;redis-1:6379;redis-2:6379
mysql_user redis连接用户名
redis_password redis库密码
redis_db redisDB 0

[kubernetes] 配置

字段 备注 其他
image_pull_secrets 拉取镜像所需要的secrets名称 如果您的环境不需要可以不配置

[jenkins] jenkins配置

字段 备注 其他
host jenkins地址 如: http://jenkins:8080
token 连接jenkins的token
user 构建的用户 执行相关jenkins任务的用户
credentials_id 安全token 访问jenkins的凭据, 可以在jenkins的 credentials->system->domain进行配置或创建

[consul] consul配置

字段 备注 其他
consul_token consul acl token
consul_addr consul地址 如: consul:8500

[amqp] RabbitMq配置

字段 备注 其他
url 地址 如: amqp://kplcloud:kplcloud@rabbitmq:5672/kplcloud
exchange consul地址 如: direct
exchange_type 如: kplcloud-exchange
routing_key 如: kplcloud

[git] git 仓库配置

字段 备注 其他
git_type git仓库类型 1. gitlab: 使用内部自建的gitlab gitlab的版本需要支持v3 api,如果不支持 您可以自己行加载应用的package 2. github: 使用公共的github
git_addr 连不知gitlab或github的API地址 如: https://gitlab.com 或 gitlab.com
token 连接gitlab或github的token 访问相关git的token 需要所有项目的clone权限
client_id consul地址 如: github-api 如果使用的是github 由需要用这个在https://github.com/settings/developers上查找

[email] 邮箱配置

字段 备注 其他
smtp_user 发送邮箱
smtp_password 密码
smtp_host 服务端smtp 地址

邮箱使用的是公司邮箱,有相应用API的,把src/email/client:EmailInterface 实现一遍就好

[ldap] LDAP配置

字段 备注 其他
ldap_host ldap地址
ldap_port ldap端口
ldap_base
ldap_sseSSL 是否ssl
ldap_bindDN
ldap_bind_password 绑定密码
ldap_user_filter 过滤用户 (userPrincipalName=%s)
ldap_group_filter 过滤组 (&(objectCategory=Group))
ldap_attr 需要返回的字段 name;email

[wechat] 微信相关配置

字段 备注 其他
app_id
app_secret
token
encoding_aes_key
tpl_alarm 微信的报警模版ID 需要在微信申请模版
tpl_notice 微信的通知模版ID 需要在微信申请模版

[msg] 消息推送配置

字段 备注 其他
alarm_default_email 系统告警默认发送的人员 solacowa@gmail.com;i@lattecake.com
prometheus_url prometheus的外部地址 可以被访问到的

完成的app.cfg

  1. ; ;[server]
  2. ; ;该服务启动的相关参数
  3. ; ;http_static: 静态文件目录, 前端的文件会放在这里
  4. ; ;http_proxy: 代理服务地址如果需要的话就填
  5. ; ;logs_path: 日志文件目录
  6. ; ;upload_path: 文件上传目录
  7. ; ;domain: 访问域名
  8. ; ;login_type: 登陆类型
  9. ; ; 1. ldap 需要在下面的 [ldap] 填写相关的ldap地址及配置信息
  10. ; ; 2. email 邮箱登陆
  11. ; ;consul_kv: 是否启consul kv功能, 如果启用, 将可以在平台上操作consul kv
  12. ; ;app_key: 通常用来加密使用
  13. ; ;session_timeout: sesstion时长, 单位秒
  14. ; ;kibana_url: kibanba地址
  15. ; ;grafana_url: grafana地址
  16. ; ;heapster_url: heapster 地址
  17. ; ;prometheus_url: prometheus地址 http://prometheus.kube-system:9090
  18. ; ;docker_repo: 您的镜像仓库地址
  19. ; ;service_mesh: false 是否启用service mesh 功能
  20. ; ;domain_suffix: 生成对外访问域名的后缀
  21. ; ;client_id: 平台的OAuth App所生成的Client ID
  22. ; ;client_secret: 平台的OAuth App所生成的Client Secret 如有不清楚的可查看 配置Github授权登陆
  23. ; ;auth_login: 授权登陆的平台,目前只支持GitHub
  24. ; ;default_namespace: 默认分配的空间名 目前只支持一个
  25. ; ;default_role_id: 默认分配的角色ID 目前只支持一个
  26. ; ;debug: 是否打印gorm debug casbin debug日志
  27. ; ;log_level: all,error,warn,info,debug
  28. [server]
  29. app_name = kplcloud
  30. http_static = ./static/
  31. ;http_proxy =
  32. ;logs_path = /var/log/kplcloud.log
  33. upload_path = /go/bin/upload
  34. domain = https://kplcloud.nsini.com
  35. login_type = auth
  36. consul_kv = true
  37. app_key = 6c47q0-w39euf!#%13a79
  38. session_timeout = 7200
  39. kibana_url = http://kibana.kpaas.nsini.com
  40. transfer_url = http://tracing.kpaas.nsini.com
  41. grafana_url = http://grafana.kpaas.nsini.com
  42. prometheus_url = http://prometheus.kube-system:9090
  43. heapster_url = http://heapster.kube-system
  44. docker_repo = hub.kpaas.nsini.com
  45. service_mesh = false
  46. domain_suffix = %s.%s.nsini.com
  47. client_id = 20emfs
  48. client_secret = 9jfapsmdg8i
  49. auth_login = github
  50. default_namespace = default
  51. default_role_id = 4
  52. debug = false
  53. log_level = all
  54. ; ;[cors]
  55. ; ;主要是让服务端支持跨域请求
  56. ; ;allow: 是否支持跨域请求
  57. ; ;origin: Access-Control-Allow-Origin
  58. ; ;methods: Access-Control-Allow-Methods
  59. ; ;headers: Access-Control-Allow-Headers
  60. [cors]
  61. allow = false
  62. origin = http://localhost:8000
  63. methods = GET,POST,OPTIONS,PUT,DELETE
  64. headers = Origin,Content-Type,Authorization,x-requested-with,Access-Control-Allow-Origin,Access-Control-Allow-Credentials
  65. ; ;[mysql]
  66. ; ;mysql相关的配置, 如下所示, 就不需要过多解释了
  67. ; ;mysql_host: mysql
  68. ; ;mysql_port: 3306
  69. ; ;mysql_user: root
  70. ; ;mysql_password: admin
  71. ; ;mysql_database: kplcloud
  72. [mysql]
  73. mysql_host = mysql
  74. mysql_port = 3306
  75. mysql_user = kplcloud
  76. mysql_password = 32-0@g03wje;dm
  77. mysql_database = kplcloud
  78. ; ;[redis]
  79. ; ;redis可配集群访问和单点访问
  80. ; ;redis_drive:
  81. ; ; 1. cluster: 若为该值, 则访问redis集群
  82. ; ; 2. single: 若为该值, 则访问单点redis服务
  83. ; ;redis_hosts: redis IP 地址(redis:6379), redis_drivecluster,则redis_hosts需要多个IP";"隔开
  84. ; ;redis_password: redis auth 密码
  85. ; ;redis_db: redis_drivecluster的情况下 redis_db 不需要设置
  86. [redis]
  87. redis_drive = single
  88. redis_hosts = redis:6379
  89. ;redis_password =
  90. redis_db = 0
  91. ; ;[kubernetes]
  92. ; ;kubernetes的一些配置
  93. ; ;image_pull_secrets: 拉取镜像所需要的secrets名称
  94. [kubernetes]
  95. image_pull_secrets = regcred
  96. ; ;[jenkins]
  97. ; ;host: jenins 地址, 如: http://jenkins.devops.idc
  98. ; ;token:
  99. ; ;user: 执行相关jenkins任务的用户
  100. ; ;credentials_id: 访问jenkins的凭据, 可以在jenkins credentials/store/system/domain/_/credential进行配置或创建
  101. [jenkins]
  102. host = http://jenkins:8080/
  103. token = 1c8da3c07ccab3c127f1f04d1ca05bac2c
  104. user = admin
  105. credentials_id =
  106. ; ;[consul]
  107. ; ;consul_token: 连接consul token
  108. ; ;consul_addr: consul地址 http://consul:8500
  109. [consul]
  110. consul_token =
  111. consul_addr = http://consul:8500
  112. ; ;[amqp]
  113. ; ;url: rabbitmq的地址 amqp://kplcloud:kplcloud@rabbitmq:5672/kplcloud
  114. ; ;exchange: direct
  115. ; ;exchange_type: kplcloud-exchange
  116. ; ;routing_key: kplcloud
  117. [amqp]
  118. url = amqp://kplcloud:kplcloud@rabbitmq:5672/kplcloud
  119. exchange = direct
  120. exchange_type = kplcloud-exchange
  121. routing_key = kplcloud
  122. ; ;[git]
  123. ; ;git_type:
  124. ; ; 1. gitlab: 使用内部自建的gitlab gitlab的版本需要支持v3 api,如果不支持 您可以自己行加载应用的package
  125. ; ; 2. github: 使用公共的github
  126. ; ;git_addr: git API地址, 例如: http://gitlab.domain.idc/api/v4/ v3 的API暂时不支持
  127. ; ;token: 访问相关gittoken 需要所有基础的clone权限 0d6f6bc3ecaf97fc87aa2b8bf3e7e7d27667920b
  128. ; ;client_id: 如果使用的是github 由需要用这个在https://github.com/settings/developers上查找
  129. [git]
  130. ;git_type = gitlab
  131. ;git_addr = https://gitlab.com
  132. ;token = fpeYxskBEP29qzzyFu2T
  133. git_type = github
  134. token =
  135. client_id = github-api
  136. ; ;[email]
  137. ; ;邮箱使用的是公司邮箱,有相应用API的,把src/email/client:EmailInterface 实现一遍就好
  138. ; ;若使用的是SMTP的话,配置下面相关参数就好
  139. ; ;smtp_user: 发送邮箱
  140. ; ;smtp_password: 密码
  141. ; ;smtp_host: 服务端smtp 地址
  142. [email]
  143. smtp_user = 123456@qq.com
  144. smtp_password = 654321
  145. smtp_host = smtp.qq.com:587
  146. ; ;[ldap]
  147. ; ;ldap的相关配置,根据需要调整
  148. [ldap]
  149. ldap_host = ldap
  150. ldap_port = 389
  151. ldap_base = DC=nsini,DC=corp
  152. ldap_sseSSL = false
  153. ldap_bindDN = hlw-moniti
  154. ldap_bind_password = 2019Paasd-@4!2
  155. ldap_user_filter = (userPrincipalName=%s)
  156. ldap_group_filter = (&(objectCategory=Group))
  157. ldap_attr = name;mail
  158. ; ;[wechat]
  159. ; ;app_id: 微信公众号的应用ID
  160. ; ;access_token: 微信公众号的应用access_token
  161. [wechat]
  162. app_id =
  163. app_secret =
  164. token =
  165. encoding_aes_key =
  166. tpl_alarm = kTwwPu4Bwd-Cr684ExGAf4YN4c2uHJeq_Own14uylH4
  167. tpl_notice = hqtepX_add4iv_O55BFD8GoSx6HwNs81GtXK7EBs38Q
  168. ; ;[msg]
  169. ; ;消息分发中心,默认接收消息的管理员id
  170. [msg]
  171. alarm_default_email = admin@nsini.com;kplcloud@nsini.con
  172. prometheus_url = http://prometheus.kpaas.nsini.com