Как скопировать секретный контент kubernetes в один файл

У меня есть следующие секреты kubernetes, и я хочу скопировать весь контент как есть в один файл.

api: 
  url: https://app.a.com/test
application: 
  metadata: name = "myname"

в yaml у меня есть следующие

apiVersion: apps/v1
kind: Deployment
metadata:
  name: active-mq
  labels:
    app: active-mq
spec:
  replicas: 1
  selector:
    matchLabels:
      app: active-mq
  template:
    metadata:
      labels:
        app: active-mq
    spec:
      containers:
        - image: [name-of-my-image-from-docker-hub]
          name: active-mq
          imagePullPolicy: Always
          resources:
            requests:
              memory: 500Mi
              cpu: 200m
            limits:
              memory: 1000Mi
              cpu: 400m
          volumeMounts:
          - name: active-creds
            mountPath: /home/my.properties
            subPath: my.properties
      volumes:
      - name: active-creds
        secret:
          secretName: creds
      restartPolicy: Always

когда я запускаю контейнер, я вижу, что он создает имя каталога как my.properties под /home. это что-то, что мне здесь не хватает? Я ожидаю, что my.properties должен содержать следующее

api: 
  url: https://app.a.com/test
application: 
  metadata: name = "myname"

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из вашего вопроса неясно, но я подозреваю, что не создал секрет, чтобы отразить нужные вам ключи. В этом случае ключ становится именем файла (например, my.properties). Вы не хотите, чтобы ключи были api и application.

# Create the file locally
echo '
api: 
  url: https://app.a.com/test
application: 
  metadata: name = "myname"' > my.foo

# Create the Kubernetes Secret from it
# NB This renames to "my.properties" from "my.foo"
kubectl create secret generic test \
--from-file=my.properties=${PWD}/my.foo

get secret test \
--output=yaml

Урожайность:

apiVersion: v1
data:
  my.properties: YXBpOiAK...
kind: Secret
metadata:
  name: test
type: Opaque

NOTEdata contains a key my.properties

Затем:

# Using your Deployment
kubectl apply \
--filename=71484256.yaml

# I replaced your image with busybox
kubectl exec \
--stdin --tty \
deployment/test \
-- ash

Затем из оболочки контейнера:

# ls /home
my.properties

# more /home/my.properties
api: 
  url: https://app.a.com/test
application: 
  metadata: name=myname

Другие вопросы по теме