掌舵的Spring Boot日志secret.yaml

时间:2018-08-24 08:40:01

标签: spring-boot kubernetes-helm

我正在开始掌舵。我已经定义了部署,服务,configMap和秘密yaml文件。

我有一个简单的带有基本http身份验证的spring boot应用程序,用户名和密码在秘密文件中定义。

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

有没有办法知道spring boot从头盔得到的值是什么?

或者有没有办法解密secret.yaml文件?

values.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

secret.yaml

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 }}

1 个答案:

答案 0 :(得分:0)

通常,secret.yaml文件中的机密不会被加密,而只是以base64编码。因此,如果您可以访问kubernetes仪表板,则可以使用https://www.base64decode.org/之类的工具来解密机密内容。

如果您以environment variables的形式注入机密,则可以找到带有kubeclt get pods的容器,然后kubectl describe pod <pod_name>将包含注入了环境变量的输出。

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