Как использовать карту конфигурации для создания одного файла в контейнере? - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь настроить контейнер Nginx в Openshift. Моя последняя цель - переписать файл конфигурации Nginx. Я знаю, что это возможно с помощью карт конфигурации. Поскольку любая ошибка при изменении директорий Nginx config приводит к сбою контейнера, временно моя цель состоит в том, чтобы просто создать индексный файл. html в каталоге / opt / app-root / sr c.

I Столкновение с двумя проблемами зависит от конфигурации

  • config map overwrite whole / opt / app-root / sr c directory
  • config map создает индекс. html каталог с индексный файл внутри

Карта конфигурации:

apiVersion: v1
data:
  index: |-
    <html>
    <body>
    yo yo!
    </body>
    </html>
kind: ConfigMap
metadata:
  creationTimestamp: '2020-01-16T12:53:25Z'
  name: index-for-nginx
  namespace: some-namespace

Конфигурация развертывания (часть, относящаяся к topi c):

spec:
  containers:
    - image: someimage
      ...
      volumeMounts:
        - mountPath: /opt/app-root/src/index.html
          name: index
  volumes:
    - configMap:
        defaultMode: 420
        name: index-for-nginx
      name: index

Когда:

volumeMounts:
            - mountPath: /opt/app-root/src/index.html

Создает индекс. html каталог и файл индекса (с соответствующим содержимым) в / opt / app-root / sr c

Когда:

volumeMounts:
            - mountPath: /opt/app-root/src/

Перезаписывает / opt / app-root / sr c каталог

Мой вопрос - как мне настроить его для создания индекса. html файл в / opt / app-root / sr c без перезаписи каталога?

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Вы можете использовать subPath для монтирования нужного файла.

volumeMounts:
  - mountPath: /opt/app-root/src/index.html
    subPath: index
    name: index

https://kubernetes.io/docs/concepts/storage/volumes/#using -subpath

0 голосов
/ 16 января 2020

Вы можете сделать следующее, взятое из этой проблемы GitHub

containers:
- volumeMounts:
  - name: config-volumes
    mountPath: /opt/app-root/src/index.html
    subPath: index
volumes:
- name: config-volumes
  configMap:
    name: index-for-nginx

Примечание. Контейнер, использующий ConfigMap в качестве тома subPath, не будет получать обновления ConfigMap.

...