我正在开始掌舵。我已经定义了部署,服务,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 }}
答案 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资源。