Follow this section if you added SSL certs in the OpenMetadata server.
The OpenMetadata configuration related to Airflow (or in general, the Pipeline Service Client) is the following:
pipelineServiceClientConfiguration: # ... # This SSL information is about the OpenMetadata server. # It will be picked up from the pipelineServiceClient to use/ignore SSL when connecting to the OpenMetadata server. verifySSL: ${PIPELINE_SERVICE_CLIENT_VERIFY_SSL:-"no-ssl"} # Possible values are "no-ssl", "ignore", "validate" sslConfig: certificatePath: ${PIPELINE_SERVICE_CLIENT_SSL_CERT_PATH:-""} # Local path for the Pipeline Service Client
Then, in order to add this, you can either update the openmetadata.yaml config if your deployment is Bare Metal,
or update the following environment variables:
Note that the PIPELINE_SERVICE_CLIENT_SSL_CERT_PATH should be the path to the certificate you generated
here, and it should be the local path
in your Airflow deployment.
and we can provide the following answers to try this locally:
Country Name (2 letter code) []:USState or Province Name (full name) []:CALocality Name (eg, city) []:San FranciscoOrganization Name (eg, company) []:OpenMetadataOrganizational Unit Name (eg, section) []:OpenMetadataCommon Name (eg, fully qualified host name) []:localhostEmail Address []:local@open-metadata.org
It is important that the Common Name is the host name that will be hosting Airflow.
This command will generate the pair airflow.key and airflow.crt.
Once the files are generated we need to add them to the Airflow deployment. For example, if using the openmetadata-ingestion
image, you can update it to add the following lines:
Since Airflow will be using SSL, we need to update the OpenMetadata Server configuration to use the certificates
when preparing the connection to the Airflow Webserver.The pipelineServiceClientConfiguration will look like the following:
pipelineServiceClientConfiguration: [...] parameters: username: ${AIRFLOW_USERNAME:-admin} password: ${AIRFLOW_PASSWORD:-admin} timeout: ${AIRFLOW_TIMEOUT:-10} # If we need to use SSL to reach Airflow truststorePath: ${AIRFLOW_TRUST_STORE_PATH:-""} truststorePassword: ${AIRFLOW_TRUST_STORE_PASSWORD:-""}
Update the truststorePath and truststorePassword accordingly, pointing to the keystore in your server host
holding the certificates we created.For docker deployments, you will provide OpenMetadata Server Application with the self signed certificates of Airflow bundled in JVM keystore.
These will be passed to the application using AIRFLOW_TRUST_STORE_PATH and AIRFLOW_TRUST_STORE_PASSWORD environment variable.
Please make sure to have the the truststore file mounted and available as part of Docker Deployments.For kubernetes deployments, update the helm values as below -
In the above code snippet, we are mounting the volumes of truststore file from a kubernetes secret. You can create the secret from truststore.jks file from the below kubectl command -
Make sure to update these values to the ones in your host. Also, it’s always preferred to use environment variables
instead of hardcoding sensitive information.