其他任何无需从teamcity解码而获取密码的选项

问题描述 投票:1回答:1

我需要提取TeamCity中定义的密码值。当前,我使用secrets.yaml来存储密码。为了实现它,我已经将密码转换为64位代码值。并保存它。看来我每次都很难更新它。我们是否可以选择动态更新它?

我尝试过的第一件事是这样的:

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
data:
  CassandraSettings__CassandraPassword: [[ .Environment ]]-abc-cassandra-password

但是它在部署过程中失败。后来我尝试过这样,在这里我将密码转换为64位编码值。

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
data:
  CassandraSettings__CassandraPassword: S2V5czJUaGVLMW5nZDBt

到目前为止,我得到了结果。

我的问题是,我们是否还有其他选择可用于在部署期间从TeamCity获取值而无需转换值。我需要动态更新secrets.yaml。这是我目前得到的输出。results

是否可以这样定义数据

CassandraSettings__CassandraPassword: [[ .Environment ]]-abc-cassandra-password
kubernetes deployment teamcity devops kubernetes-secrets
1个回答
0
投票

据我了解,您可能需要使用stringData来代替数据,这将允许您将机密数据作为未编码的字符串提供。

stringData是只写的便利字段,在检索机密时不会输出

示例

secret.yaml

apiVersion: v1
kind: Secret
metadata:
  name: mysecret-test
stringData:
  CassandraSettings__CassandraPassword: Passw0rd

创建秘密

$ kubectl create -f secret.yaml
secret/mysecret-test created

$ kubectl describe secrets mysecret-test
Name:         mysecret-test
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
CassandraSettings__CassandraPassword:  8 bytes

获取秘密Yaml,并注意数据字段已为您进行base64编码

$ kubectl get secrets mysecret-test -o yaml

apiVersion: v1
data:
  CassandraSettings__CassandraPassword: UGFzc3cwcmQ=
kind: Secret
metadata:
  creationTimestamp: "2020-01-30T13:24:11Z"
  name: mysecret-test
  namespace: default
  resourceVersion: "3733024"
  selfLink: /api/v1/namespaces/default/secrets/mysecret-test
  uid: 718278c5-0e8e-4861-ae23-7e107209c338
type: Opaque

编码数据字段的值与通过快速检查的stringData字段相同,如下所示

$ echo UGFzc3cwcmQ= | base64 -d
Passw0rd
像这样的

或使用命令命令生成带有已传递文字的编码值的secret.yaml。下面,我将文字之一定义为测试的导出变量。

$ export PASS=Passw0rd

$ echo $PASS
  Passw0rd

$ kubectl create secret generic mysecret --from-literal=CassandraSettings__CassandraPassword=$PASS--dry-run -o yaml > secret.yaml

$ cat secret.yaml
apiVersion: v1
data:
  CassandraSettings__CassandraPassword: UGFzc3cwcmQ=
kind: Secret
metadata:
  creationTimestamp: null
  name: mysecret
© www.soinside.com 2019 - 2024. All rights reserved.