配置文件解析

优质
小牛编辑
135浏览
2023-12-01

本文主要介绍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_urlkibana 地址
transfer_urltracing 地址
grafana_urlgrafana地址
heapster_urlheapster地址k8s的cpu、内存等监控数据从这里拿
prometheus_urlprometheus地址其他监控数据获取源 可以是内部地址也可以是外部地址
docker_repo您的镜像仓库地址例如: hub.docker.com
service_mesh是否启用servicemesh功能目前兼容istio
domain_suffix生成的ingress的后缀例如: .kpaas.nsini.com
client_idOAuth App Client ID平台的OAuth App所生成的Client ID
client_secretOAuth 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_driveredis驱动1. cluster: 若为该值, 则访问redis集群; 2. single: 若为该值, 则访问单点redis服务
redis_hostsredis地址redis IP 地址, 若redis_drive为cluster,则redis_hosts需要多个IP用";"隔开例如 redis-0:6379;redis-1:6379;redis-2:6379
mysql_userredis连接用户名
redis_passwordredis库密码
redis_dbredisDB0

[kubernetes] 配置

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

[jenkins] jenkins配置

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

[consul] consul配置

字段备注其他
consul_tokenconsul acl token
consul_addrconsul地址如: consul:8500

[amqp] RabbitMq配置

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

[git] git 仓库配置

字段备注其他
git_typegit仓库类型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_idconsul地址如: github-api 如果使用的是github 由需要用这个在https://github.com/settings/developers上查找

[email] 邮箱配置

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

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

[ldap] LDAP配置

字段备注其他
ldap_hostldap地址
ldap_portldap端口
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_urlprometheus的外部地址可以被访问到的

完成的app.cfg

; ;[server]
; ;该服务启动的相关参数
; ;http_static: 静态文件目录, 前端的文件会放在这里
; ;http_proxy: 代理服务地址如果需要的话就填
; ;logs_path: 日志文件目录
; ;upload_path: 文件上传目录
; ;domain: 访问域名
; ;login_type: 登陆类型
; ;  1. ldap 需要在下面的 [ldap] 填写相关的ldap地址及配置信息
; ;  2. email 邮箱登陆
; ;consul_kv: 是否启consul kv功能, 如果启用, 将可以在平台上操作consul kv
; ;app_key: 通常用来加密使用
; ;session_timeout: sesstion时长, 单位秒
; ;kibana_url: kibanba地址
; ;grafana_url: grafana地址
; ;heapster_url: heapster 地址
; ;prometheus_url: prometheus地址 http://prometheus.kube-system:9090
; ;docker_repo: 您的镜像仓库地址
; ;service_mesh: false 是否启用service mesh 功能
; ;domain_suffix: 生成对外访问域名的后缀
; ;client_id: 平台的OAuth App所生成的Client ID
; ;client_secret: 平台的OAuth App所生成的Client Secret 如有不清楚的可查看 配置Github授权登陆
; ;auth_login: 授权登陆的平台,目前只支持GitHub
; ;default_namespace: 默认分配的空间名 目前只支持一个
; ;default_role_id: 默认分配的角色ID 目前只支持一个
; ;debug: 是否打印gorm debug 及 casbin debug日志
; ;log_level: all,error,warn,info,debug
[server]
app_name = kplcloud
http_static = ./static/
;http_proxy =
;logs_path = /var/log/kplcloud.log
upload_path = /go/bin/upload
domain = https://kplcloud.nsini.com
login_type = auth
consul_kv = true
app_key = 6c47q0-w39euf!#%13a79
session_timeout = 7200
kibana_url = http://kibana.kpaas.nsini.com
transfer_url = http://tracing.kpaas.nsini.com
grafana_url = http://grafana.kpaas.nsini.com
prometheus_url = http://prometheus.kube-system:9090
heapster_url = http://heapster.kube-system
docker_repo = hub.kpaas.nsini.com
service_mesh = false
domain_suffix = %s.%s.nsini.com
client_id = 20emfs
client_secret = 9jfapsmdg8i
auth_login = github
default_namespace = default
default_role_id = 4
debug = false
log_level = all

; ;[cors]
; ;主要是让服务端支持跨域请求
; ;allow: 是否支持跨域请求
; ;origin: Access-Control-Allow-Origin
; ;methods: Access-Control-Allow-Methods
; ;headers: Access-Control-Allow-Headers
[cors]
allow = false
origin = http://localhost:8000
methods = GET,POST,OPTIONS,PUT,DELETE
headers = Origin,Content-Type,Authorization,x-requested-with,Access-Control-Allow-Origin,Access-Control-Allow-Credentials


; ;[mysql]
; ;mysql相关的配置, 如下所示, 就不需要过多解释了
; ;mysql_host: mysql
; ;mysql_port: 3306
; ;mysql_user: root
; ;mysql_password: admin
; ;mysql_database: kplcloud
[mysql]
mysql_host = mysql
mysql_port = 3306
mysql_user = kplcloud
mysql_password = 32-0@g03wje;dm
mysql_database = kplcloud


; ;[redis]
; ;redis可配集群访问和单点访问
; ;redis_drive:
; ;  1. cluster: 若为该值, 则访问redis集群
; ;  2. single: 若为该值, 则访问单点redis服务
; ;redis_hosts: redis IP 地址(redis:6379), 若redis_drive为cluster,则redis_hosts需要多个IP用";"隔开
; ;redis_password: redis auth 密码
; ;redis_db: 在redis_drive为cluster的情况下 redis_db 不需要设置
[redis]
redis_drive = single
redis_hosts = redis:6379
;redis_password =
redis_db = 0

; ;[kubernetes]
; ;kubernetes的一些配置
; ;image_pull_secrets: 拉取镜像所需要的secrets名称
[kubernetes]
image_pull_secrets = regcred

; ;[jenkins]
; ;host: jenins 地址, 如: http://jenkins.devops.idc
; ;token:
; ;user: 执行相关jenkins任务的用户
; ;credentials_id: 访问jenkins的凭据, 可以在jenkins的 credentials/store/system/domain/_/credential进行配置或创建
[jenkins]
host = http://jenkins:8080/
token = 1c8da3c07ccab3c127f1f04d1ca05bac2c
user = admin
credentials_id =

; ;[consul]
; ;consul_token: 连接consul的 token
; ;consul_addr: consul地址 http://consul:8500
[consul]
consul_token =
consul_addr = http://consul:8500

; ;[amqp]
; ;url: rabbitmq的地址 amqp://kplcloud:kplcloud@rabbitmq:5672/kplcloud
; ;exchange: direct
; ;exchange_type: kplcloud-exchange
; ;routing_key: kplcloud
[amqp]
url = amqp://kplcloud:kplcloud@rabbitmq:5672/kplcloud
exchange = direct
exchange_type = kplcloud-exchange
routing_key = kplcloud

; ;[git]
; ;git_type:
; ;  1. gitlab: 使用内部自建的gitlab gitlab的版本需要支持v3 api,如果不支持 您可以自己行加载应用的package
; ;  2. github: 使用公共的github
; ;git_addr: git API地址, 例如: http://gitlab.domain.idc/api/v4/  v3 的API暂时不支持
; ;token: 访问相关git的token 需要所有基础的clone权限 0d6f6bc3ecaf97fc87aa2b8bf3e7e7d27667920b
; ;client_id:  如果使用的是github 由需要用这个在https://github.com/settings/developers上查找
[git]
;git_type = gitlab
;git_addr = https://gitlab.com
;token = fpeYxskBEP29qzzyFu2T
git_type = github
token =
client_id = github-api

; ;[email]
; ;邮箱使用的是公司邮箱,有相应用API的,把src/email/client:EmailInterface 实现一遍就好
; ;若使用的是SMTP的话,配置下面相关参数就好
; ;smtp_user: 发送邮箱
; ;smtp_password: 密码
; ;smtp_host: 服务端smtp 地址
[email]
smtp_user = 123456@qq.com
smtp_password = 654321
smtp_host = smtp.qq.com:587

; ;[ldap]
; ;ldap的相关配置,根据需要调整
[ldap]
ldap_host = ldap
ldap_port = 389
ldap_base = DC=nsini,DC=corp
ldap_sseSSL = false
ldap_bindDN = hlw-moniti
ldap_bind_password = 2019Paasd-@4!2
ldap_user_filter = (userPrincipalName=%s)
ldap_group_filter = (&(objectCategory=Group))
ldap_attr = name;mail

; ;[wechat]
; ;app_id: 微信公众号的应用ID
; ;access_token: 微信公众号的应用access_token
[wechat]
app_id =
app_secret =
token =
encoding_aes_key =
tpl_alarm = kTwwPu4Bwd-Cr684ExGAf4YN4c2uHJeq_Own14uylH4
tpl_notice = hqtepX_add4iv_O55BFD8GoSx6HwNs81GtXK7EBs38Q

; ;[msg]
; ;消息分发中心,默认接收消息的管理员id
[msg]
alarm_default_email = admin@nsini.com;kplcloud@nsini.con
prometheus_url = http://prometheus.kpaas.nsini.com