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

Я пытаюсь развернуть в Kubernetes несколько модулей, используя образ mon go со сценарием инициализации в них. Я использую шлем для развертывания. Поскольку я начинаю с официального изображения Mon go docker, я пытаюсь добавить скрипт в /docker-entrypoint-initdb.d, чтобы он выполнялся в самом начале для инициализации некоторых параметров мой Mon go.

Чего я не знаю, так это как я могу вставить свой скрипт, то есть, скажем, на моем локальном компьютере, в /docker-entrypoint-initdb.d с помощью helm .

Я пытаюсь сделать что-то вроде docker запустить -v hostfile: mongofile, но мне нужен эквивалент в helm, так что это будет сделано во всех модулях развертывания

1 Ответ

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

Вы можете использовать configmap. Позволяет поместить nginx файл конфигурации в контейнер через configmap. У нас есть имя каталога с именем nginx с тем же уровнем values.yml. Внутри у нас есть актуальный файл конфигурации.

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config-file
  labels:
    app: ...    
data:
  nginx.conf: |-
{{ .Files.Get "nginx/nginx.conf" | indent 4 }}

---

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: SomeDeployment
  ...  
spec:
  replicas: 
  selector:
    matchLabels:
      app: ...
      release: ...
  template:
    metadata:
      labels:
        app: ...
        release: ...
    spec:
      volumes:
        - name: nginx-conf
          configMap:
            name: nginx-config-file
            items:
            - key: nginx.conf
              path: nginx.conf
      containers:        
        - name: ...
          image: ...          
          volumeMounts:
            - name: nginx-conf
              mountPath: /etc/nginx/nginx.conf
              subPath: nginx.conf

Вы также можете проверить концепцию initContainers по этой ссылке: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

...