Попытка скопировать / смонтировать файл в модуль AWX kubernetes, но получаю ошибку - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь добавить файл в каталог / etc / в задании / веб-контейнере AWX в kubernetes.Я довольно плохо знаком с Хелмом и не уверен, что делаю неправильно.

Единственное, что я добавил в свою таблицу руля, это ключ krb5 в configmap и дополнительный том и монтирование тома дляи задача, и веб-контейнер.Файл krb5.conf находится в диаграммах / mychart / files /

ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ include "awx.fullname" . }}-application-config
  labels:
    app.kubernetes.io/name: {{ include "awx.name" . }}
    helm.sh/chart: {{ include "awx.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
  krb5: |-
  {{ .Files.Get "krb5.conf"}}
  secret_key: {{ .Values.awx_secret_key }}
  awx_settings: |
    *some stuff*

Развертывание:

Тома, добавляемые к нижней части deploy.yaml

volumes:
  - name: {{ include "awx.fullname" . }}-application-config
    configMap:
      name: {{ include "awx.fullname" . }}-application-config
      items:
        - key: awx_settings
          path: settings.py
        - key: secret_key
          path: SECRET_KEY
  - name: {{ include "awx.fullname" . }}-application-config-krb5
    configMap:
      name: {{ include "awx.fullname" . }}-application-config
      items:
        - key: krb5
          path: krb5.conf

Том монтирует добавить в оба задачи / веб-контейнер

 volumeMounts:
   - mountPath: /etc/tower
     name: {{ include "awx.fullname" . }}-application-config
   - mountPath: /etc
     name: {{ include "awx.fullname" . }}-application-config-krb5

Я пытаюсь подключить файл к контейнерам в модуле kubernetes и получаю следующую ошибку:

  Warning  Failed     40s                kubelet, aks-prdnode-18232119-1  Error: failed to start container "web": Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/var/lib/docker/containers/d66044fe204abbf9a4d3772370d0f8d4184e339e59ad9a018f046eade03b8418/resolv.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/d9fa9705d70bbb864ed526a96f6a2873b2720c41a9f9ef5b4a428902e4cf3c82/merged\\\" at \\\"/var/lib/docker/overlay2/d9fa9705d70bbb864ed526a96f6a2873b2720c41a9f9ef5b4a428902e4cf3c82/merged/etc/resolv.conf\\\" caused \\\"open /var/lib/docker/overlay2/d9fa9705d70bbb864ed526a96f6a2873b2720c41a9f9ef5b4a428902e4cf3c82/merged/etc/resolv.conf: read-only file system\\\"\"": unknown

1 Ответ

2 голосов
/ 07 июня 2019

Вы захотите использовать опцию subPath:, чтобы "достучаться" до этого -application-config-krb5 и смонтировать только один файл:

- mountPath: /etc/krb5.conf
  name: {{ include "awx.fullname" . }}-application-config-krb5
  subPath: krb5.conf

, поскольку, как правильно указывает на ошибку, вы наверняка не хотите уничтожать каталог /etc почти любой контейнерной среды (она обнулит /etc/passwd, /etc/hosts , resolv.conf и еще несколько важных файлов)

...