DataCROP Maize Airflow Processing Engine Deployment
Use this page when following the manual per-repository setup. If you use Maize MVP, this component is deployed by the MVP script; refer here only for customization or troubleshooting. See Maize Setup for the two setup options.
This is a demo deployment instance for the Maize DataCROP version. It deploys the Airflow web server responsible for managing tasks within the DataCROP Workflow Management Engine infrastructure. The deployment consists of six containers.
Overview
The DataCROP Maize Airflow Processing Engine is a critical component of the DataCROP Workflow Management Engine. This engine is responsible for orchestrating and managing the execution of various tasks (DAGs) within the DataCROP infrastructure, providing an interface to monitor and manage workflows through the Airflow webserver.
Requirements
Prerequisites
Before proceeding with the deployment, make sure to complete the following steps:
After completing the setup, follow these steps to configure your environment variables:
-
In the Airflow Processing Engine repository, edit its
.envfile and ensure that all necessary environment variables are set correctly for your deployment. Current values frommaize-processing-engine-airflow/.envare shown below; sensitive secrets are redacted—keep using the real values already present in your.env.# AIRFLOW USERS || DC.CAIRFLOW_UID=1002AIRFLOW_WEB_PORT=8080AIRFLOW_WEB_PSSWD=[REDACTED – keep existing value in your .env]AIRFLOW_WEB_SSL_CERT=/security/airflow/airflow.pemAIRFLOW_WEB_SSL_KEY=/security/airflow/airflow-key.pemAIRFLOW_CA_CERT=/security/ca/rootCA.pemAIRFLOW_WEB_SECRET_KEY=[REDACTED – keep existing value in your .env]AIRFLOW_FERNET_KEY=[REDACTED – keep existing value in your .env]_PIP_ADDITIONAL_REQUIREMENTS=''_AIRFLOW_WEB_UNAME='airflow'_AIRFLOW_WEB_PSSWD='airflow'# HOST || DC.CHOST_IP=<HOST_IP># REDIS || DC.CREDIS_TLS_PORT=6379REDIS_TLS_CERT_FILE=/security/redis/redis.pemREDIS_TLS_KEY_FILE=/security/redis/redis-key.pemREDIS_TLS_CA_CERT_FILE=/security/ca/rootCA.pemREDIS_TLS_CLIENT_CERT_FILE=/security/redis/redis-client.pemREDIS_TLS_CLIENT_KEY_FILE=/security/redis/redis-client-key.pem# POSTGRES || DC.CPOSTGRES_PORT=5432POSTGRES_SSL_CERT_FILE=/security/postgres/postgres.pemPOSTGRES_SSL_KEY_FILE=/security/postgres/postgres-key.pemPOSTGRES_SSL_CA_FILE=/security/ca/rootCA.pem# Celery || DC.CCELERY_WEB_UNAME=[REDACTED – keep existing value in your .env]CELERY_WEB_PSSWD=[REDACTED – keep existing value in your .env]CELERY_FLOWER_PORT=5555CELERY_FLOWER_CERT=/security/flower/flower.pemCELERY_FLOWER_KEY=/security/flower/flower-key.pemCELERY_FLOWER_CA_CERT=/security/ca/rootCA.pem# Worker SSL || DC.CWORKER_SSL_KEY_FILE=/security/worker/worker-key.pemSensitive secrets are redacted above; ensure your
.envretains the real values currently configured.
Once these parameters are correctly set, you can proceed with the deployment.
Start The Application.
-
Navigate to the source directory containing the
docker-compose.yamlfile. -
Run the following command:
docker compose up -d
Verify that everything is up and running
Wait for the services to start, then run:
docker compose ps
Confirm airflow-webserver, airflow-scheduler, airflow-triggerer, flower, postgres, and redis are up. airflow-init may appear as exited after successful initialization.
Make Sure Everything Works
-
Access the Flower Web App:
- Open a browser and navigate to
http://YOUR_IP:5555/workers. - Log in using the
celerycredentials you provided in the.envfile. - After successful authentication, you should be redirected to the workers page, confirming that Celery was set up correctly.
- Open a browser and navigate to
-
Access the Airflow Web App:
- Open a browser and go to
http://YOUR_IP:8080/home. - Log in using the credentials provided by your organization for Airflow.
- You should see all the available DAGs listed, confirming that your DAGs folder is properly configured.
- Open a browser and go to
Stop everything.
Navigate to the source directory and run the following command.
docker compose down