helm 报错: bad character U+002D ‘-‘
一、问题
编写helm脚本:
values.yaml:
global:
cluster_name: cluster.local
parent_url: None
file_expire_day: 18
log:
format: '%(asctime)s.%(msecs)03d %(levelname)s %(threadName)s:%(thread)d-%(filename)s:%(lineno)d-%(message)s'
level: DEBUG
expire_day: 15
app_storage:
type: "local"
debug: "False"
is_decrypt: "False"
grpc:
nacos:
host: 'http://127.0.0.1'
port: 8848
sentinel:
flow-count: 200 # 设置 QPS 限流阈值
degrade-count: 10000 # 设置允许的最大响应时间,单位为毫秒
time-timeWindow: 10 # 设置熔断的时间窗口,单位为秒
slow-ratio-threshold: 0.2 # 设置慢调用比例阈值,超过这个比例将触发熔断
min-request-amount: 10 # 设置在一个时间窗口内的最小请求数,达到这个数量才会进行熔断的判断
stat-interval-ms: 20000 # 设置统计信息的采集间隔,单位为毫秒
configmap 引用:
data:
application: |
host: {{ .Values.global.gateway_svc }}
DEPEND_TYPE: {{ .Values.global.DEPEND_TYPE }}
server:
port: 8341
max-http-header-size: 2MB
application:
name:
magic-gateway
# sentinel 熔断限流
sentinel:
flow:
rule:
ms-key: predictions # 资源名称
me-key: online_score # 资源名称
flow-count: {{ .Values.global.sentinel.flow-count }} # 设置 QPS 限流阈值
degrade-count: {{ .Values.global.sentinel.degrade-count }} # 设置允许的最大响应时间,单位为毫秒
time-timeWindow: {{ .Values.global.sentinel.time-timeWindow }} # 设置熔断的时间窗口,单位为秒
slow-ratio-threshold: {{ .Values.global.sentinel.slow-ratio-threshold }} # 设置慢调用比例阈值,超过这个比例将触发熔断
min-request-amount: {{ .Values.global.sentinel.min-request-amount }} # 设置在一个时间窗口内的最小请求数,达到这个数量才会进行熔断的判断
stat-interval-ms: {{ .Values.global.sentinel.stat-interval-ms }} # 设置统计信息的采集间隔,单位为毫秒
# 日志配置
logging:
level:
com.me: info
org.springframework: warn
执行报错:
# 2、部署
helm upgrade --install demo-gateway /data/demo-gateway --namespace=middleware \
--set image.registry=harbor.local.com \
--set image.tag=v3.0.0 \
--set global.redis.url=redis-master.demo-middleware.svc.cluster.local --set global.redis.port=6379 --set global.redis.db=6 \
--set global.sentinel.flow-count=200 --set global.sentinel.degrade-count=10000 --set global.sentinel.time-timeWindow=10
报错信息:
Error: UPGRADE FAILED: parse error at (demo-gateway/templates/configmap.yaml:85): bad character U+002D '-'
解决问题
看来 values.yaml
是不让使用“-”符号,可以改为下划线“_”符号;
values.yaml:
global:
cluster_name: cluster.local
parent_url: None
file_expire_day: 18
log:
format: '%(asctime)s.%(msecs)03d %(levelname)s %(threadName)s:%(thread)d-%(filename)s:%(lineno)d-%(message)s'
level: DEBUG
expire_day: 15
app_storage:
type: "local"
debug: "False"
is_decrypt: "False"
grpc:
nacos:
host: 'http://127.0.0.1'
port: 8848
sentinel:
flow_count: 200 # 设置 QPS 限流阈值
degrade_count: 10000 # 设置允许的最大响应时间,单位为毫秒
time_timeWindow: 10 # 设置熔断的时间窗口,单位为秒
slow_ratio_threshold: 0.2 # 设置慢调用比例阈值,超过这个比例将触发熔断
min_request_amount: 10 # 设置在一个时间窗口内的最小请求数,达到这个数量才会进行熔断的判断
stat_interval_ms: 20000 # 设置统计信息的采集间隔,单位为毫秒
configmap 引用:
data:
application: |
host: {{ .Values.global.gateway_svc }}
DEPEND_TYPE: {{ .Values.global.DEPEND_TYPE }}
server:
port: 8341
max-http-header-size: 2MB
application:
name:
magic-gateway
# sentinel 熔断限流
sentinel:
flow:
rule:
ms-key: predictions # 资源名称
me-key: online_score # 资源名称
flow-count: {{ .Values.global.sentinel.flow_count }} # 设置 QPS 限流阈值
degrade-count: {{ .Values.global.sentinel.degrade_count }} # 设置允许的最大响应时间,单位为毫秒
time-timeWindow: {{ .Values.global.sentinel.time_timeWindow }} # 设置熔断的时间窗口,单位为秒
slow-ratio-threshold: {{ .Values.global.sentinel.slow_ratio_threshold }} # 设置慢调用比例阈值,超过这个比例将触发熔断
min-request-amount: {{ .Values.global.sentinel.min_request_amount }} # 设置在一个时间窗口内的最小请求数,达到这个数量才会进行熔断的判断
stat-interval-ms: {{ .Values.global.sentinel.stat_interval_ms }} # 设置统计信息的采集间隔,单位为毫秒
# 日志配置
logging:
level:
com.me: info
org.springframework: warn
重新执行:
# 2、部署
helm upgrade --install demo-gateway /data/demo-gateway --namespace=middleware \
--set image.registry=harbor.local.com \
--set image.tag=v3.0.0 \
--set global.redis.url=redis-master.demo-middleware.svc.cluster.local --set global.redis.port=6379 --set global.redis.db=6 \
--set global.sentinel.flow_count=200 --set global.sentinel.degrade_count=10000 --set global.sentinel.time_timeWindow=10
所以在编写 values.yaml 文件时,不要用 “-” 符号拼接变量,可以使用下划线“_” 或者 驼峰;
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)