如何解决从 K8s configmap
我正在尝试查看项目 application.yml
中的一些自定义属性。
meanwhileinhell:
myproject:
myserver:
security:
users:
- username: user1
password: "{noop}password1"
roles:
- USER
- username: user2
password: "{noop}password2"
roles:
- USER
services:
- "service-the-first"
- "another-service"
我在 Kubernetes 集群中运行我的系统,并在安装过程中为我的每个项目 configmap
创建 application.yml
,使用以下命令:
kubectl create configmap <project> --from-file "<project>/src/main/resources/application.yml"
在我正在运行的系统上查看这些配置映射,我可以看到所有值都在那里。
这些属性绑定到 Kotlin 类:
@ConstructorBinding
@ConfigurationProperties("meanwhileinhell.myproject.myserver.security")
class SecurityUsersProperties(val users: List<User>)
data class User(val username: String,val password: String,val roles: List<String>)
@ConstructorBinding
@ConfigurationProperties("meanwhileinhell.myproject.myserver")
class ServiceNameProperties(val services: List<String>)
然后在几个配置类中启用:
@EnableConfigurationProperties(ServiceNameProperties::class)
注意! SecurityUsersProperties::class
已启用
WebSecurityConfig
课。
这些值都已成功加载,因为我可以使用凭据在需要的地方登录,并监控特定的服务列表。
我的问题是当我尝试查看 actuator/configprops
端点上的属性时。我可以看到属性名称列表,但是当我单击展开这些值时,它们不会显示。
contexts:
application-1:
beans:
meanwhileinhell.myproject.myserver.security-com.meanwhileinhell.myproject.myserver.security.properties.SecurityUsersProperties:
properties:
users:
inputs:
users:
0:
roles:
0:
origin: "\"meanwhileinhell.myproject.myserver.security.users[0].roles[0]\" from property source \"bootstrapProperties-configmap.myserver.default\""
1:
roles:
0:
origin: "\"meanwhileinhell.myproject.myserver.security.users[1].roles[0]\" from property source \"bootstrapProperties-configmap.myserver.default\""
在这种情况下,仅显示 roles:
,没有显示 username
或(已清理)password
。如果我搜索我的服务列表也是如此:
contexts:
application-1:
beans:
meanwhileinhell.myproject.myserver.services-com.meanwhileinhell.myproject.myserver.health.properties.ServiceNameProperties:
properties:
services:
inputs:
services:
0:
origin: "\"meanwhileinhell.myproject.myserver.services[0]\" from property source \"bootstrapProperties-configmap.myserver.default\""
1:
origin: "\"meanwhileinhell.myproject.myserver.services[1]\" from property source \"bootstrapProperties-configmap.myserver.default\""
在我的根 build.gradle.kts
中,我已在所有服务上启用执行器端点:
implementation("org.springframework.boot:spring-boot-starter-actuator")
更新
我的 env
执行器端点现在似乎可以正常工作,并显示我的用户名和(经过处理的)密码以及角色。但是,configprops
仍然没有显示它们,只有上面提到的 roles
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。