Spring boot 来自helm的Spring boot log secret.yaml

Spring boot 来自helm的Spring boot log secret.yaml,spring-boot,kubernetes-helm,Spring Boot,Kubernetes Helm,我正从赫尔姆开始。我已经定义了部署、服务、配置映射和机密yaml文件 我有一个简单的spring启动应用程序,具有基本的http身份验证,用户名和密码在机密文件中定义 我的应用程序部署正确,当我在浏览器中测试它时,它告诉我用户名和密码是错误的 有没有办法知道spring boot从helms接收到的值是多少 还是有办法解密secret.yaml文件 价值观 image: repository: myrepo.azurecr.io name: my-service tag: lates

我正从赫尔姆开始。我已经定义了部署、服务、配置映射和机密yaml文件

我有一个简单的spring启动应用程序,具有基本的http身份验证,用户名和密码在机密文件中定义

我的应用程序部署正确,当我在浏览器中测试它时,它告诉我用户名和密码是错误的

有没有办法知道spring boot从helms接收到的值是多少

还是有办法解密secret.yaml文件

价值观

image:
  repository: myrepo.azurecr.io
  name: my-service
  tag: latest 

replicaCount: 1

users:
  - name: "admin"
    password: "admintest"
    authority: "admin"
  - name: "user-test"
    password:  "usertest"
    authority: "user"

spring:
  datasource:
    url: someurl
    username: someusername
    password: somepassword
    platform: postgresql
机密文件

apiVersion: v1
kind: Secret
metadata:
  name: {{ .Release.Name }}-{{ .Chart.Name }}-secret
stringData:
  spring.datasource.url: "{{ .Values.spring.datasource.url }}"
  spring.datasource.username: "{{ .Values.spring.datasource.username }}"
  spring.datasource.password: "{{ .Values.spring.datasource.password }}"
  spring.datasource.platform: "{{ .Values.spring.datasource.platform }}"  
  {{- range $idx, $user := .Values.users }}
  users_{{ $idx }}_.name: "{{ $user.name }}"
  users_{{ $idx }}_.password: "{{ printf $user.password }}"
  users_{{ $idx }}_.authority: "{{ printf $user.authority }}"
  {{- end }}

通常情况下,secret.yaml文件中的秘密不会被加密,而是用base64编码。因此,您可以在工具中解码机密的内容,就像您可以访问kubernetes仪表板一样,该仪表板还提供了查看机密价值的方法

如果你正在注入秘密,那么你可以用
kubeclt get pods
找到pod,然后
kubectl descripe pod
将包含注入的环境变量的输出


有了helm,我发现运行
helm install--dry run--debug
非常有用,因为这样您就可以在控制台中确切地看到将从该安装模板创建哪些kubernetes资源

很奇怪,我打印了秘密文件中的值。它具有预期的凭据,但我仍然在访问应用程序时遇到问题,它再次要求输入用户名和密码。我要将value.yaml和secret.yaml与测试值相加这些秘密是作为环境变量注入的还是用于生成挂载在Pod中的属性文件?无论哪种方式,您都可以
kubectl exec-it--/bin/bash
进入pod,并使用shell查看它所看到的内容(通过回显env var或对文件执行
more
)。不过,如果在启动过程中失败,那么您可能只有一个很短的执行窗口。也许你可以通过临时硬编码来为自己赢得更多的执行时间,以确保它启动,并使自己能够进行更多的调试。我不太熟悉shell,我运行命令,但我应该执行哪些命令?或者你能给我一个链接参考来检查吊舱吗。这些值作为属性文件的变量注入,我的application.properties文件的值与secret相同(数据库凭据和用户名/密码)。你能给我推荐一些调试技术吗?我应该在哪里调试?如果它在values.yaml的属性文件中,那么您需要在Pod中装载属性文件。这意味着您的部署资源应该包含装载到
/config
volumeMounts
部分和引用该机密的
volumes
部分。我先检查一下。(你可以在《将游戏带到Minikube》中找到一些关于这一点的解释,尽管注意这是一个configmap示例,所以对于机密,语法有点不同)。在q中包含卷和挂载会很酷。一旦您运行了
kubectl exec-it--/bin/bash
,那么您应该能够执行
cd/config
,然后执行
更多的应用程序。属性
。获取装载机密的语法-