代码拉取完成,页面将自动刷新
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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。