我要达到的目标
嗨,我目前正试图通过gitlab CI作业部署postgresql ha(更具体地说是bitnami/postgresql ha)helm图表。
我在当地能取得的成就
在本地,当运行helm install postgresql ./postgresql-ha时,我能够在远程Kubernetes集群上成功地创建图表,没有任何错误。
./postgresql-ha是未经修改的bitnami/postgresql-ha拉力。
当我通过CI时会发生什么
当我试图在Gitlab的CI中运行相同的命令,并正确设置helmkubectl时,会出现以下错误:

Release "postgresql" does not exist. Installing it now.
Error: template: postgresql-ha/templates/NOTES.txt:60:4: executing "postgresql-ha/templates/NOTES.txt" at <include "postgresql-ha.validateValues" .>: error calling include: template: postgresql-ha/templates/_helpers.tpl:682:51: executing "postgresql-ha.validateValues" at <fail>: error calling fail:
VALUES VALIDATION:
postgresql-ha: Nodes hostnames
    PostgreSQL nodes hostnames exceeds the characters limit for Pgpool: 128.
    Consider using a shorter release name or namespace.

第一行验证kubectl/helm配置。
.gitlab-ci.yml文件
##########
# Stages #
##########

stages:
  - deploy charts

########
# Jobs #
########

deploy_postgresql-ha:
  image: dtzar/helm-kubectl:3.0.0
  stage: deploy charts
  environment:
    name: production
  script:
    - helm upgrade --install postgresql ./postgresql-ha

Kubernetes集群是通过Gitlab的Kubernetes集成工具创建的,因此已经按照this Gitlab Documentation page进行了设置。
提前谢谢你的帮助!

最佳答案

似乎pgpool上有一个bug:
由于缓冲区太小,ping探测失败,主机名太长
pgpool调用“ping-q-c3”并分析结果,以确定主机是启动还是关闭。不幸的是,它使用一个相当小的缓冲区来读取输出,ping命令的最后一行可能会被截断。
这意味着pgpool假设主机已关闭。
https://pgpool.net/mantisbt/print_all_bug_page_word.php?search=&sort=&dir=DESC&type_page=html&export=-1&show_flag=0
Bitnami升级了代码,因此现在不再允许长主机名。Nodehostname由以下组件组成,因此您可以调整:

$nodeHostname := printf "%s-00.%s.%s.svc.%s:1234" $postgresqlFullname $postgresqlHeadlessServiceName $releaseNamespace $clusterDomain }}

https://github.com/bitnami/charts/blob/master/bitnami/postgresql-ha/templates/_helpers.tpl

关于postgresql - 在Gitlab CI中部署Helm Chart时如何修复节点主机名太长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59092737/

10-10 11:36