Kubernetes внедряет секретный ключ в качестве токена в файл шаблона набора AKS - PullRequest
0 голосов
/ 20 июня 2020

У меня есть модуль, и внутри него мне нужно переопределить файл configuration.txt, содержащий идентификатор и пароль для базы данных.

Например: при запуске приложения он проверяет, существует ли /etc/configuration.txt , если нет, он использует идентификатор и пароль по умолчанию.

Файл конфигурации представляет собой набор шаблонов, что меня смущает. Как мне вставить идентификатор и пароль в файл конфигурации ?. (Я могу установить секрет внутри /etc/configuration.txt, но не уверен, как вставлять «токены» или секретные значения.

configuration.txt

id=test
password=test

//rest of the content in side the file to remain the same

Если кто-то может сказать мне, если это правильная практика или они могут поделиться примером.

Заранее спасибо!

1 Ответ

0 голосов
/ 20 июня 2020

С ConfigMap

kubectl create configmap myconfig --from-file ./configuration.txt

update:

kubectl create configmap myconfig --from-file ./configuration.txt -o yaml --dry-run | kubectl replace -f -

// deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: YOUR_DEPLOYMENT_NAME
  namespace: YOUR_NAMESPACE
  labels:
    app: YOUR_DEPLOYMENT_NAME
spec:
  selector:
    matchLabels:
      app: YOUR_DEPLOYMENT_NAME
  template:
    metadata:
      labels:
        app: YOUR_DEPLOYMENT_NAME
    spec:
      containers:
        - name: YOUR_DEPLOYMENT_NAME
          image: YOUR_IMAGE_NAME
          imagePullPolicy: Always
          volumeMounts:
            - name: config
              mountPath: /etc/config
      volumes:
        - name: config
          configMap:
            name: myconfig

kubectl apply -f deployment.yaml

путь: / etc / config / configuration .txt

С секретом

пароль преобразования

$ echo -n "testpassword" | base64
dGVzdA==

// секреты.yaml

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  DB_PASSWORD: dGVzdA==
kubectl apply -f secrets.yaml
kubectl describe secret/mysecret

// развертывание .yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: YOUR_DEPLOYMENT_NAME
  namespace: YOUR_NAMESPACE
  labels:
    app: YOUR_DEPLOYMENT_NAME
spec:
  selector:
    matchLabels:
      app: YOUR_DEPLOYMENT_NAME
  template:
    metadata:
      labels:
        app: YOUR_DEPLOYMENT_NAME
    spec:
      containers:
        - name: YOUR_DEPLOYMENT_NAME
          image: YOUR_IMAGE_NAME
          envFrom:
            - secretRef:
                name: mysecret
          imagePullPolicy: Always
kubectl apply -f deployment.yaml

с nodejs

const password = process.env.DB_PASSWORD?process.env.DB_PASSWORD:"default_password"
...