Как указать каталог в ConfigMap, который находится в Docker-контейнере, работающем в Kubernetes? - PullRequest
0 голосов
/ 09 октября 2019

Я работаю в установке, в которой у меня есть докер-контейнер с запущенным потоком воздуха в Kubernetes. То, что я пытаюсь сделать, это упаковать файл определения dags с контейнером docker, который содержит установку airflow (для целей контроля версий), а затем ConfigMap, который определяет каталог dags_folder, указывает каталог (внутри airflow-docker), где этот dagsфайл определения.

Dockerfile (поток воздуха - это пространство имен k8s)

RUN mkdir /home/airflow/ \
    && mkdir /home/airflow/dags \
    && chown airflow:airflow /home/airflow \
    && chown airflow:airflow /home/airflow/dags

...

ADD dags.py /home/airflow/dags
USER airflow

ConfigMap

  airflow.cfg: |
    [core]
    dags_folder = /home/airflow/dags

1 Ответ

1 голос
/ 09 октября 2019

Вы должны создать файл конфигурации

airflow.cfg: |
data:
  core: 
    dags_folder = /home/airflow/dags

Затем смонтировать его в файл deploy.yml.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your_app_name
  namespace: default or your namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: your_app_name
  template:
    metadata:
      labels:
        app: your_app_name
    spec:
      container:
        - name: Your image.
          ports:
           - name: my_app_port
             containerPort: 7000
          volumeMounts:
            - mountPath: /your/directory/airflow.cfg
              subPath: core
              name: name of config_map # this should match with name of config map
      volumes:
        - name: name of the config_map 
          configMap:
            name: your_config_map

...