37 Star 396 Fork 72

GVPrancher/rancher

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
passwordgetter.go 2.72 KB
一键复制 编辑 原始数据 按行查看 历史
package passwordgetter
import (
"strings"
passwordutil "github.com/rancher/rancher/pkg/api/store/password"
"github.com/rancher/types/apis/core/v1"
mgmtv3 "github.com/rancher/types/apis/management.cattle.io/v3"
)
const (
passwordSecretPrefix = "cattle-global-data:"
)
func NewPasswordGetter(secrets v1.SecretInterface) *PasswordGetter {
return &PasswordGetter{
secrets: secrets,
}
}
type PasswordGetter struct {
secrets v1.SecretInterface
}
func (p *PasswordGetter) GetPasswordFromSecret(loggingTarget *mgmtv3.LoggingTargets) (err error) {
if loggingTarget.ElasticsearchConfig != nil && loggingTarget.ElasticsearchConfig.AuthPassword != "" && strings.HasPrefix(loggingTarget.ElasticsearchConfig.AuthPassword, passwordSecretPrefix) {
if loggingTarget.ElasticsearchConfig.AuthPassword, err = passwordutil.GetValueForPasswordField(loggingTarget.ElasticsearchConfig.AuthPassword, p.secrets); err != nil {
return
}
}
if loggingTarget.SplunkConfig != nil && loggingTarget.SplunkConfig.Token != "" && strings.HasPrefix(loggingTarget.SplunkConfig.Token, passwordSecretPrefix) {
if loggingTarget.SplunkConfig.Token, err = passwordutil.GetValueForPasswordField(loggingTarget.SplunkConfig.Token, p.secrets); err != nil {
return
}
}
if loggingTarget.KafkaConfig != nil && loggingTarget.KafkaConfig.SaslPassword != "" && strings.HasPrefix(loggingTarget.KafkaConfig.SaslPassword, passwordSecretPrefix) {
if loggingTarget.KafkaConfig.SaslPassword, err = passwordutil.GetValueForPasswordField(loggingTarget.KafkaConfig.SaslPassword, p.secrets); err != nil {
return
}
}
if loggingTarget.SyslogConfig != nil && loggingTarget.SyslogConfig.Token != "" && strings.HasPrefix(loggingTarget.SyslogConfig.Token, passwordSecretPrefix) {
if loggingTarget.SyslogConfig.Token, err = passwordutil.GetValueForPasswordField(loggingTarget.SyslogConfig.Token, p.secrets); err != nil {
return
}
}
if loggingTarget.FluentForwarderConfig != nil && len(loggingTarget.FluentForwarderConfig.FluentServers) != 0 {
var newFluentdServers []mgmtv3.FluentServer
for _, server := range loggingTarget.FluentForwarderConfig.FluentServers {
newServer := server
if server.SharedKey != "" && strings.HasPrefix(server.SharedKey, passwordSecretPrefix) {
if newServer.SharedKey, err = passwordutil.GetValueForPasswordField(server.SharedKey, p.secrets); err != nil {
return
}
}
if server.Password != "" && strings.HasPrefix(server.Password, passwordSecretPrefix) {
if newServer.Password, err = passwordutil.GetValueForPasswordField(server.Password, p.secrets); err != nil {
return
}
}
newFluentdServers = append(newFluentdServers, newServer)
}
loggingTarget.FluentForwarderConfig.FluentServers = newFluentdServers
}
return
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/rancher/rancher.git
git@gitee.com:rancher/rancher.git
rancher
rancher
rancher
v2.3.0-alpha3

搜索帮助

Cb406eda 1850385 E526c682 1850385