我想要在Kubernetes上自动部署SonarQube,所以目标是自动配置所有的东西。我成功地为舵图创建了一个values.yaml,它安装LDAP插件并使用DC配置它。但是当配置电子邮件设置,如SMTP主机的时候,他们似乎被忽视了。
已经尝试完全删除图表并重新安装它:
helm delete --purge sonarqube-test
helm install stable/sonarqube --namespace sonarqube-test --name sonarqube-test -f values-test.yaml虽然我将http.proxyHost设置为邮件服务器,但在部署这些values.yaml后,UI中仍然是空的;

sonarProperties属性是记录在案,它似乎可以工作:应用了其他属性,比如ldap,因为我可以在更新值之后使用LDAP登录。
我不确定这是否与k8s相关,因为其他人说它一般起作用。。我使用kubectl exec进入容器,查看生成的sonar.properties文件,看起来很好:
$ cat /opt/sonarqube/conf/sonar.properties
email.from=noreply@mydomain.com
email.fromName=SonarQube Test
email.prefix=[SONARQUBE Test]
email.smtp_host.secured=mymailserver.internal
sonar.security.realm=LDAP
sonar.updatecenter.activate=true
sonar.web.javaOpts=-Xmx2048m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -serversonarqube还有一些LDAP的属性,比如绑定用户等等,我删除了这些属性。
,那么为什么在更新图表之后没有应用电子邮件设置,甚至当它被完全删除并重新部署时也不应用?
values.yaml
replicaCount: 1
image:
tag: 7.9-community
service:
type: ClusterIP
port: 80
ingress:
enabled: true
hosts:
- name: sonarqube-test.mycluster.internal
path: /
tls:
- hosts:
- sonarqube-test.mycluster.internal
persistence:
enabled: true
storageClass: nfs-client
accessMode: ReadWriteOnce
size: 10Gi
postgresql:
enabled: true
plugins:
install:
- "https://github.com/SonarSource/sonar-ldap/releases/download/2.2-RC3/sonar-ldap-plugin-2.2.0.601.jar"
sonarProperties:
sonar.web.javaOpts: "-Xmx2048m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -server"
sonar.security.realm: LDAP
ldap.url: "..."
# More ldap config vars ...
sonar.updatecenter.activate: true
email.smtp_host.secured: "mymailserver.internal"
email.fromName: "SonarQube Test"
email.from: "noreply@mydomain.com"
email.prefix: "[SONARQUBE Test]"
resources:
limits:
cpu: 4000m
memory: 8096Mi
requests:
cpu: 500m
memory: 3096Mi发布于 2019-10-09 11:55:30
您已经为声呐定义了图表,并在您的tls文件中配置了value.yaml。注意,根据sonarquebue的定义,您没有指定秘密名称,您的tls部分应该如下所示。请记住,您必须手动在正确的命名空间中创建此秘密。
配置tls的模板如下所示:
tls: []
# Secrets must be manually created in the namespace.
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
So in your case this section should loks like this:
tls: []
# Secrets must be manually created in the namespace.
- secretName: your-secret-name
hosts:
- sonarqube-test.mycluster.internal同时,在配置postgresql依赖项期间,您没有为postgreSQL指定用户、数据库、密码和端口,因为您选择使用此数据库而不是mySQL。
下面是模板:
database:
type: "postgresql"
## Configuration values for postgresql dependency
## ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md
postgresql:
# Enable to deploy the PostgreSQL chart
enabled: true
# To use an external PostgreSQL instance, set enabled to false and uncomment
# the line below:
# postgresServer: ""
# To use an external secret for the password for an external PostgreSQL
# instance, set enabled to false and provide the name of the secret on the
# line below:
# postgresPasswordSecret: ""
postgresUser: "sonarUser"
postgresPassword: "sonarPass"
postgresDatabase: "sonarDB"
# Specify the TCP port that PostgreSQL should use
service:
port: 5432SMTP失败的最常见原因是出站邮件配置错误。必须在SMTP配置中引入以下参数:
检查这些参数是否是您的邮件提供商提供的参数。检查是否遵循了应用程序文档页中的“配置出站邮件设置”部分。
在您的情况下,您没有指定密码、用户名和端口。将折叠部分添加到sonar.properities定义中:
email.smtp_port.secured=port-name
email.smtp_secure_connection.secured=true
email.smtp_username.secured=your-username
email.smtp_password.secured=your-password下一步:确保云环境允许SMTP端口中的流量。
为了避免大规模的垃圾邮件攻击,几个云不允许SMTP流量进入其默认端口。
下面是与SMTP问题相关的文档的疑难解答:SMTP-问题。确保你没有他们中的一个。
如果有帮助,请告诉我。
https://stackoverflow.com/questions/58116666
复制相似问题